CKAD case studies
CKAD · Put your knowledge to work in context.
The Certified Kubernetes Application Developer (CKAD) is a vendor-neutral credential created by the Cloud Native Computing Foundation in collaboration with The Linux Foundation. It certifies that a developer can design, build, configure, and expose cloud-native applications for Kubernetes - defining application resources and using core primitives to build, monitor, and troubleshoot scalable applications and tools. The CKAD case studies are 5 cases and about 5,125 words.
1Reconciliation Pod with a Fetch-Before-Start Dependency
A team is packaging a nightly reconciliation tool as a single Pod named recon . Before the main container starts, it must download a JSON manifest from http://intake.internal:8080/manifest .
1,061 words, about 5 min2Stalled Rollout with a PDB That Is Not the Blocker
Deployment api runs 12 replicas with maxSurge: 25% and maxUnavailable: 25% . Its readiness probe is httpGet /healthz with initialDelaySeconds: 20 , periodSeconds: 10 , failureThreshold: 3 .
1,037 words, about 5 min3Restart Loop on a Slow-Warming Worker with No Shell
Pod ledger-worker in namespace prod restarts roughly every 90 seconds; RESTARTS is 7 after 11 minutes. The app loads a 4 GB ledger snapshot and serves health on :8080 only after the load finishes, which takes about 70 seconds on a cold cache.
921 words, about 5 min4Rotated Secret Not Taking Effect, plus a Hardening Review
Deployment payments consumes DB PASSWORD via envFrom: secretRef: db-creds and mounts ConfigMap app-config at /etc/app/config through a volume. Last night the Secret was rotated and the ConfigMap edited; four hours later the running pods still authenticate with the old password and still read the old config value, although a colleague's manually deleted pod picked up both changes.
1,105 words, about 6 min5Empty Endpoints, a Default-Deny Policy, and Connection Refused
Namespace api hosts the orders Deployment (pod template labels app=orders, tier=back-end ) behind Service orders-svc (port 80 to targetPort 8080, selector app=orders, tier=backend ). Namespace web runs the frontend ( app=web ).
1,001 words, about 5 min