CKAD - Certified Kubernetes Application Developer¶
The Certified Kubernetes Application Developer (CKAD) exam certifies that candidates can design, build, and deploy cloud native applications for Kubernetes.
Exam Overview¶
| Detail | Information |
|---|---|
| Exam Format | Performance-based (hands-on) |
| Number of Questions | 15-20 |
| Duration | 2 hours |
| Passing Score | 66% |
| Certification Validity | 3 years |
| Cost | $395 USD |
| Retake Policy | 1 free retake |
| Kubernetes Version | 1.30 |
Exam Domains & Weights¶
Prerequisites¶
- Basic understanding of Kubernetes concepts
- Familiarity with YAML syntax
- Linux command line proficiency
- Container fundamentals (Docker)
Study Resources¶
Official Resources¶
Recommended Courses¶
Practice Resources¶
- Killercoda CKAD Scenarios ⭐ Highly Recommended
- Kubernetes Playground
- killer.sh CKAD Simulator
Quick Navigation¶
- 01 - Application Design and Build
- 02 - Application Deployment
- 03 - Application Observability and Maintenance
- 04 - Application Environment, Configuration and Security
- 05 - Services and Networking
- Sample Practice Questions
Exam Environment¶
The CKAD exam provides:
- Access to multiple Kubernetes clusters
kubectlwith auto-completion enabled- Access to Kubernetes documentation (kubernetes.io)
- A Linux terminal environment
Allowed Resources During Exam¶
Exam Tips¶
- Practice kubectl imperative commands - They save significant time
- Master YAML generation - Use
kubectl run --dry-run=client -o yaml - Know vim/nano basics - You'll edit YAML files frequently
- Use aliases - Set up
alias k=kubectland enable auto-completion - Bookmark important docs - Prepare bookmarks for quick access
- Time management - Don't spend too long on any single question
- Practice on Killercoda - Free hands-on scenarios at killercoda.com/ckad
Useful kubectl Commands¶
# Set alias
alias k=kubectl
# Enable auto-completion
source <(kubectl completion bash)
complete -o default -F __start_kubectl k
# Generate YAML templates
k run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
k create deployment nginx --image=nginx --dry-run=client -o yaml > deploy.yaml
k create service clusterip nginx --tcp=80:80 --dry-run=client -o yaml > svc.yaml
# Quick pod creation
k run nginx --image=nginx --port=80 --labels=app=web
# Expose deployment
k expose deployment nginx --port=80 --target-port=80 --type=ClusterIP
# Scale deployment
k scale deployment nginx --replicas=3
# Set resources
k set resources deployment nginx --limits=cpu=200m,memory=512Mi
# Rollout commands
k rollout status deployment/nginx
k rollout history deployment/nginx
k rollout undo deployment/nginx