CKAD Labs

Thirteen labs for the CKAD Track. Labs 02 to 06 are cumulative: they share one podinfo Deployment and each states the state it expects and leaves, so do them in order after Lab 01. Labs 07 to 13 each use their own namespace and stand on their own.

Lab CKAD-01 also builds the kind cluster that the CKA Labs and CKS Labs start from.

LabTitleCore FocusControlled Failure Scenario
CKAD-01Cluster Setup & OrientationMulti-node kind cluster, control plane and worker inspectionNode failure and recovery
CKAD-02Deploying the ApplicationDeployment, ReplicaSet and Pod ownership, the generated selectorA Pod ignored, adopted and released as its labels change
CKAD-03Updates & RollbacksmaxSurge and maxUnavailable, rollout history, rollout undoBad image tag causing ImagePullBackOff
CKAD-04Workload Configuration & SecretsConfigMaps and Secrets as environment variables and mounted files, what kubectl apply does and does not removeStale values surviving an apply; missing key causing CreateContainerConfigError
CKAD-05Services & DNSClusterIP, EndpointSlices, DNS search path, NodePortSelector typo, wrong targetPort, unready Pod
CKAD-06Observability & Troubleshootingmetrics-server, logs, kubectl debug, exit codesOne-off exit, crash loop and OOM kill
CKAD-07Kustomize, Drift & API DeprecationsBase and overlays, server-side apply ownership, migrating a removed API versionApply refused by a field ownership conflict
CKAD-08Build & Ship Container ImagesBuild, tag, modify, save and load, running a local imagelatest tag forcing a registry pull
CKAD-09IngressIngressClass, host and path rules, TLS from a SecretWrong class, wrong port, no endpoints
CKAD-10Jobs, CronJobs & Multi-Container PodsCompletions and parallelism, schedules, init containers, sidecars, shared volumesJob past its backoff limit; init container that never finishes
CKAD-11Helm Release LifecycleValues, install, upgrade, history, rollback, uninstallUpgrade that does not come up
CKAD-12Blue/Green & Canary DeploymentsTwo Deployments and one Service, selectors and replica ratiosSelector that catches an unrelated Pod
CKAD-13Quotas, LimitRanges & ProbesResourceQuota, LimitRange defaults and bounds, startup, readiness and liveness probesThree admission rejections; slow start killed by a liveness probe

DaemonSets and StatefulSets have no lab yet; see the track’s gap table. Test yourself with the CKAD practice set.