CKAD exam tips
A Quick Reference Guide to Passing the CKAD Exam
Section titled “A Quick Reference Guide to Passing the CKAD Exam”This guide synthesizes practical tips from multiple CKAD candidates and training resources. The passing score is 66% (125 points) — you don’t need perfection. Easy questions are worth as much as hard ones — prioritize accordingly.
Exam Basics
Section titled “Exam Basics”Key facts to know:
- Passing score: 66% (125 points) — you don’t need perfection
- Aim for 75%+ on practice exams to have a comfortable margin
- 120 minutes for 15-20 questions = 5-7 min per question average
- This certification is essentially a test of speed
Time Management Strategy
Section titled “Time Management Strategy”The Green → Yellow → Red Method
Section titled “The Green → Yellow → Red Method”- Green (Easy): Questions you can solve immediately
- Yellow (Medium): Questions requiring some thought
- Red (Hard): Questions you’re unsure about
Strategy:
- Read all questions without solving before starting
- First pass: Solve all green questions immediately
- Second pass: Tackle yellow questions
- Third pass: Return to red questions with remaining time
- Skip hard questions if spending >10 minutes on any single one
- Flag uncertain questions and return later
Remember: Take a breath—panic hurts more than helps.
Environment Setup
Section titled “Environment Setup”Pre-Exam Checklist
Section titled “Pre-Exam Checklist”- Clean, quiet, private space with no distractions
- Test internet speed (minimum 5 Mbps download)
- Bookmark the Kubernetes documentation page before the exam
- Configure your .bashrc with shortcuts before exam day
Useful .bashrc Shortcuts
Section titled “Useful .bashrc Shortcuts”# Force flag aliasexport f='--force'
# Namespace switching aliaskn() { kubectl config set-context --current --namespace "$1"; }
# Show current contextkshow() { kubectl config current-context; }
# Dry-run output flagexport do="--dry-run=client -o yaml"
# Quick namespace operationsalias kg="kubectl get"alias ks="kubectl set"Command Shortcuts
Section titled “Command Shortcuts”Fast Resource Creation
Section titled “Fast Resource Creation”# Deploymentkubectl create deployment name --image=image --replicas=3
# ConfigMapkubectl create configmap name --from-literal=key=value
# Secretkubectl create secret generic name --from-literal=key=value
# Servicekubectl expose deployment name --port=80 --target-port=80
# Namespacekubectl create namespace nameNamespace Management
Section titled “Namespace Management”# Always specify namespace explicitlykubectl get pods -n namespace
# Switch namespace quicklykubectl config set-context --current --namespace=productionQuick Debugging
Section titled “Quick Debugging”# Pod statuskubectl get pods
# Pod detailskubectl describe pod name
# Pod logskubectl logs pod-name
# Eventskubectl get events
# Events sorted by timestampkubectl get events --sort-by=.lastTimestampTechnical Execution Tips
Section titled “Technical Execution Tips”Vim Comfort Level
Section titled “Vim Comfort Level”- Be very comfortable with Vim and YAML manipulations
- Practice these motions for rapid editing:
| Command | Action |
|---|---|
i |
Insert before cursor |
I |
Insert at beginning of line |
A |
Append at end of line |
dd |
Delete current line |
D |
Delete from cursor to end of line |
V |
Select whole lines |
> / < |
Indent or unindent |
ZZ |
Save and exit |
Documentation Navigation
Section titled “Documentation Navigation”- Learn to search in the official documentation using
kubectl explain - Helm documentation is allowed during the exam — bookmark it
- Use
kubectl explainwhen field placement is unclear
kubectl explain deployment.spec.template.spec.containers.resourceskubectl explain pod.spec.securityContextkubectl explain networkpolicy.spec.ingressGenerate Files Efficiently
Section titled “Generate Files Efficiently”# Generate YAML without creatingkubectl create deploy myapp --image=nginx --replicas=3 --dry-run=client -oyaml > deploy.yaml
# Create and save to filekubectl run my-nginx --image=nginx --port=80 --dry-run=client -o yaml > pod.yamlkubectl apply -f pod.yamlForce Operations (Save Time)
Section titled “Force Operations (Save Time)”# Force delete pods to save timekubectl delete pod name --force --grace-period=0
# Delete all resourceskubectl delete all --allCommon Pitfalls
Section titled “Common Pitfalls”Resource Configuration
Section titled “Resource Configuration”- Requests must be less than limits for resources
- Use realistic values (Mi, not Gi for most apps)
- Use public images (nginx, postgres, etc.) unless question specifies otherwise
Selector Mismatches
Section titled “Selector Mismatches”- Verify that Service selectors match pod labels
- Check that Ingress rules route to correct Service
- Confirm that NetworkPolicy allows traffic from expected pods
Namespace Errors
Section titled “Namespace Errors”- Always verify which namespace you’re in before creating resources
- Use
-n namespaceexplicitly rather than switching contexts - Double-check namespace before starting each question
Verification Oversights
Section titled “Verification Oversights”- Don’t trust
Runningstatus without checking readiness - Always verify endpoints are populated
- Confirm the exact required behavior is achieved
Verification Checklist
Section titled “Verification Checklist”Pod-Specific
Section titled “Pod-Specific”kubectl get podskubectl describe pod namekubectl logs pod-namekubectl logs pod-name -c container-name # multi-containerService-Specific
Section titled “Service-Specific”kubectl get svckubectl get endpoints namekubectl describe svc namekubectl get endpoints <service-name>Deployment-Specific
Section titled “Deployment-Specific”kubectl rollout status deployment/namekubectl rollout history deployment/namekubectl rollout undo deployment/namekubectl describe deployment nameNetwork-Specific
Section titled “Network-Specific”kubectl get pods --show-labelskubectl run curl --image=curlimages/curl:latest -it --rm --restart=Never -- shkubectl exec -it <pod> -- wget -qO- http://<service-name>Final Validation
Section titled “Final Validation”kubectl get events --sort-by=.lastTimestampkubectl get pods,svc,deploy,ingress -o wideQuick Reference Links
Section titled “Quick Reference Links”- Kubernetes documentation: https://kubernetes.io/docs/
- Kubernetes kubectl reference: https://kubernetes.io/docs/reference/kubectl/
- Helm documentation: https://helm.sh/docs/
Final Advice
Section titled “Final Advice”- Practice is the key for mastering the material
- Use Killer.sh for realistic training (it’s a little harder than the actual exam)
- Switch contexts quickly using aliases
- Determine the environment first: Which context and which namespace?
- Easy questions are worth as much as hard ones — don’t get stuck
- 66% is passing—you don’t need perfection
This guide synthesizes practical tips from multiple CKAD candidates and training resources. Always verify current exam details on the Linux Foundation CKAD page.
