Stage 7 · Master
CKAD — Certified Kubernetes Application Developer
CKAD Timed Lab Exam
16 hands-on tasks, 2 hours, developer-focused — the real CKAD experience.
Exam Format
The CKAD exam is performance-based. You perform real tasks in a real Kubernetes cluster using kubectl and a terminal. There are no multiple-choice questions. You must demonstrate hands-on competence.
| Detail | Value |
|---|---|
| Tasks | 15-20 hands-on tasks |
| Time | 2 hours |
| Passing score | 67% |
| Delivery | Online proctored via PSI |
| Tools | kubectl, terminal, browser (kubernetes.io docs) |
| Retake policy | 1 free retake within 12 months |
Domain Weights
| Domain | Weight | Time Budget |
|---|---|---|
| Application Environment & Config | 25% | 30 minutes |
| Application Design & Build | 20% | 24 minutes |
| Application Deployment | 20% | 24 minutes |
| Services & Networking | 20% | 24 minutes |
| Observability & Maintenance | 15% | 18 minutes |
Config and Security is 25% — the largest domain. Allocate your time accordingly. Do not spend 20 minutes on a 5% task. Move on and come back later.
Time Strategy
- First pass — Do all easy tasks (imperative commands, simple configurations).
- Flag hard tasks — Mark tasks you are unsure about and come back after the first pass.
- Verify every task — Use the validation commands provided in each task description.
- Save time — Use imperative commands for simple resources.
- Time check — At 1 hour, you should have completed at least 8 tasks.
Common Task Types
The CKAD exam repeats similar task types. Practice these patterns until they are muscle memory.
- Create a multi-container Pod with shared volumes.
- Create a Pod with init containers.
- Create a Job or CronJob.
- Create a Deployment with specific strategy and rollback.
- Create a Service to expose a Deployment.
- Create an Ingress rule for hostname or path routing.
- Create a NetworkPolicy to restrict Pod traffic.
- Create a ConfigMap and mount it in a Pod.
- Create a Secret and inject it as environment variables.
- Create a Pod with SecurityContext (runAsNonRoot, readOnlyRootFilesystem).
- Fix a broken Pod, Service, or Deployment.
- Debug a failing health probe.
killer.sh Drills
killer.sh is a practice environment included with your CKAD exam voucher. It provides simulated exam scenarios with broken clusters. Use it extensively before the exam.
- Access killer.sh through your CNCF certification portal.
- Complete all available scenarios — each one teaches a different skill.
- Focus on speed — practice completing tasks in under 5 minutes each.
- Review the solutions — even if you got it right, there may be a faster approach.
- Retake scenarios — practice until you can complete them without hesitation.
killer.sh scenarios are intentionally harder than the CKAD exam. If you can pass killer.sh, you will pass the CKAD. Do not be discouraged by failures.
Exam-Day Checklist
- Browser — Chrome or Chromium, latest version.
- Internet — Stable connection, minimum 2 Mbps.
- Webcam — Working webcam for proctoring.
- ID — Government-issued photo ID.
- Room — Quiet, well-lit room with no interruptions.
- PSI browser — Installed and tested before the exam.
- kubeconfig — Pre-configured in the exam environment.
- Bookmarks — Bookmark kubernetes.io/docs pages you use frequently.
Speed Commands
# Pod with security context
kubectl run my-pod --image=nginx --dry-run=client -o yaml | \
sed 's/containers:/securityContext:
runAsUser: 1000
runAsNonRoot: true
containers:/' | kubectl apply -f -
# Job
kubectl create job my-job --image=busybox -- echo hello
# CronJob
kubectl create cronjob my-cron --image=busybox --schedule="*/5 * * * *" -- echo hello
# ConfigMap
kubectl create configmap my-config --from-literal=key1=value1
# Secret
kubectl create secret generic my-secret --from-literal=user=admin
# Service
kubectl expose deployment my-app --port=80 --type=NodePort
# NetworkPolicy (must use YAML)
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend
spec:
podSelector:
matchLabels:
app: backend
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
EOFUse heredoc with kubectl apply -f - for resources that cannot be created imperatively. This pattern is faster than writing a file and then applying it.
The CKAD exam rewards speed. Imperative commands are 2-3x faster than writing YAML. Practice creating every resource type with imperative commands. Use kubectl explain <resource> to check fields quickly.
Mark this lesson complete to store local progress and unlock a cleaner resume path the next time you visit.