CKAD study plan
CKAD · Give each week a clear focus.
8 weeks · About 6 hours per week
Application Environment, Configuration and Security
Create ConfigMaps and Secrets both imperatively and from manifest files, then inject them as single env vars, as envFrom blocks, and as mounted volumes
Mount a Secret as a volume inside a Pod and verify file contents and permissions from within the running container
Define CPU and memory requests and limits on a Pod and observe how the resulting QoS class changes
Create a ResourceQuota in a namespace and confirm that an over-sized Pod is rejected at admission
Your checkpoint
A namespace named env-lab holding 3 ConfigMaps, 2 Secrets, and a quota that demonstrably blocks one over-sized Pod, with the verifying kubectl output saved alongside your notes.
Application Environment, Configuration and Security
Attach a dedicated ServiceAccount to a Pod and set automountServiceAccountToken to false on the default account
Configure runAsUser, runAsNonRoot, readOnlyRootFilesystem, and dropped capabilities in a SecurityContext, then confirm the effect with an in-container id and mount check
Create a CustomResourceDefinition, then create and query an instance of that custom resource
Trace the request path from kubeconfig credentials through authentication, authorization, and admission, and write it out in your own words
Your checkpoint
A working CRD plus custom resource instance and a hardened non-root Pod with a read-only root filesystem - both rebuilt from memory in under 10 minutes.
Application Design and Build
Write a Dockerfile, build an image, and run it in-cluster with an overridden command and args
Create a Job with explicit completions and parallelism, plus a CronJob with a concurrencyPolicy and a deadline
Implement an init container and a sidecar container in one Pod and verify execution ordering from logs
Attach emptyDir and hostPath volumes to a Pod and demonstrate data sharing between two containers
Your checkpoint
A single manifest bundle that deploys a Job, a CronJob, and an init-plus-sidecar Pod, all reaching a successful completed state in the cluster.
Application Design and Build & Application Deployment
Perform a rolling update on a Deployment and deliberately trigger, then repair, a failed rollout
Roll back a Deployment using both rollout undo and inspection of the revision history
Tune maxSurge and maxUnavailable and observe how scale-up and scale-down pacing changes
Scale a Deployment and inspect the generated ReplicaSets to explain revision tracking
Your checkpoint
A timed drill: deploy v1, roll to v2 with custom surge settings, break the image, and roll back cleanly - completed in under 12 minutes.
Application Deployment
Implement a blue/green cutover by editing a Service selector, then a canary release by splitting replicas across two Deployments
Install an existing Helm chart with a custom values file and confirm the rendered resources match the cluster state
Build Kustomize base plus dev and prod overlays from one directory tree
Render manifests with helm template and kustomize build and diff them against what is actually deployed
Your checkpoint
A repository directory containing a Helm-installed release and an equivalent Kustomize base-plus-overlay for the same app, with kubectl diff reporting no drift for both.
Services and Networking
Expose a Deployment through ClusterIP, NodePort, and headless Services and resolve each name from a test Pod
Diagnose a Service whose selector matches no Pods and correct the endpoint list
Create an Ingress with both path-based and host-based routing and verify it against the running Ingress controller
Introduce a targetPort mismatch and explain the resulting timeout from the Service definition alone
Your checkpoint
A working host-and-path Ingress fronting two Services, plus a five-line written diagnosis of one deliberately broken Service.
Services and Networking & Application Observability and Maintenance
Write NetworkPolicies that default-deny ingress and then allow traffic only from a specifically labeled namespace
Add liveness, readiness, and startup probes and verify each failure mode using kubectl describe
Stream logs from a multi-container Pod using the container flag and the previous-instance flag
Debug a CrashLoopBackOff and an ImagePullBackOff using describe, logs, and events
Your checkpoint
A personal debugging runbook covering five common failure states, each one reproduced and then fixed at least once.
Application Observability and Maintenance
Identify and replace deprecated API versions flagged by kubectl warnings in existing manifests
Monitor a running workload's health using kubectl top, events, and exec-based checks
Complete two full-length timed practice exams and classify every miss by domain
Re-drill your three slowest task types until each is finished in under three minutes
Your checkpoint
Two timed mock exams scored at 85% or above, with a written list of remaining weak spots and a concrete remediation step for each.
Milestones
Week 2: With no notes, create a ConfigMap, mount it into a Pod, and apply a non-root SecurityContext - all within 8 minutes of CLI time.
Week 4: Complete a 10-task mixed drill drawn from domains 4 and 1 in 45 minutes, scoring at least 8 out of 10.
Week 6: Deploy an application, expose it, and reach it end-to-end through an Ingress in under 10 minutes without consulting reference material.
Week 8: Score 85% or higher on two consecutive full-length timed mock exams, with no single domain below 70%.