CKAD Study Strategy¶
Overview¶
The CKAD exam is a performance-based, hands-on terminal exam. Unlike multiple-choice certifications, you must demonstrate practical skills by executing commands and creating Kubernetes resources in a live cluster. Your strategy should prioritize speed and muscle memory over memorization.
Three-Phase Study Approach¶
Phase 1: Foundation (Weeks 1-2)¶
Goal: Understand core Kubernetes concepts and get comfortable with kubectl.
Activities: - Read the official Kubernetes documentation for each exam domain - Set up a local cluster (minikube or kind) and practice daily - Learn the core resource types: Pods, Deployments, Services, ConfigMaps, Secrets - Understand YAML structure and how Kubernetes manifests are organized - Practice imperative commands for resource creation - Study multi-container Pod patterns (sidecar, init, ambassador)
Focus Areas: - What each resource type does and when to use it - The relationship between Deployments, ReplicaSets, and Pods - How Services expose Pods and how DNS works in Kubernetes - Volume types and how PVCs work
Mindset: Do not worry about speed yet. Focus on understanding why things work, not just how. Experiment with breaking things and fixing them.
Phase 2: Hands-On Practice (Weeks 3-4)¶
Goal: Build speed and fluency with kubectl and YAML editing.
Activities: - Work through all scenarios in scenarios.md repeatedly - Practice creating every resource type imperatively and declaratively - Time yourself on common tasks and try to reduce your completion time - Learn to use --dry-run=client -o yaml to generate YAML templates - Set up your shell aliases and practice using them - Focus on the highest-weighted domain (Application Environment, Configuration and Security at 25%) - Practice debugging - intentionally break Pods and Services, then fix them
Speed Benchmarks to Target: - Create a Pod with a specific image: under 15 seconds - Create a Deployment with replicas and expose it: under 30 seconds - Create a ConfigMap and mount it in a Pod: under 2 minutes - Create a NetworkPolicy from requirements: under 3 minutes - Debug a failing Pod (identify and fix the issue): under 3 minutes
Mindset: Repetition builds speed. Do the same tasks over and over until they become automatic. This is where you build the muscle memory that will carry you through the exam.
Phase 3: Exam Preparation (Week 5)¶
Goal: Simulate exam conditions and fine-tune weak areas.
Activities: - Take the killer.sh practice exam (one session is included with your exam purchase) - Simulate full 2-hour exam sessions with no breaks - Practice context switching between clusters (the exam uses multiple clusters) - Learn to navigate kubernetes.io/docs quickly to find YAML snippets - Review every mistake from practice exams and create targeted drills - Practice time management - learn when to skip a question and come back
Exam Readiness Checklist: - [ ] Can create any common resource type in under 30 seconds - [ ] Comfortable editing YAML in vim or nano - [ ] Can navigate kubernetes.io docs to find examples in under 1 minute - [ ] Can debug a failing Pod within 2-3 minutes - [ ] Can complete 15+ tasks in 2 hours in practice exams - [ ] Know all imperative kubectl commands by heart
Developer-Focused Study Approach¶
As a developer taking the CKAD, think about Kubernetes from an application perspective:
Think Like an App Developer¶
- How do I deploy my application? - Deployments, rolling updates
- How do I configure my application? - ConfigMaps, Secrets, environment variables
- How do I expose my application? - Services, Ingress
- How do I make my application reliable? - Probes, resource limits, replicas
- How do I secure my application? - SecurityContexts, ServiceAccounts, NetworkPolicies
- How do I debug my application? - Logs, describe, exec, events
- How do I run batch tasks? - Jobs, CronJobs
Map to Real-World Development¶
- ConfigMaps and Secrets are your
.envfiles and config files - Deployments are your application release process
- Services are your load balancers and service discovery
- Probes are your health check endpoints
- Resource limits prevent your app from consuming all cluster resources
- NetworkPolicies are your firewall rules
Speed Tips for the Exam¶
Before You Start¶
Set up your environment at the very beginning of the exam:
# Essential aliases
alias k=kubectl
alias kn='kubectl config set-context --current --namespace'
export do="--dry-run=client -o yaml"
export now="--force --grace-period=0"
# Verify setup
k version --short
Imperative Commands Save Time¶
Always try the imperative approach first:
# Pods
k run nginx --image=nginx --port=80 --labels="app=web,tier=frontend"
k run nginx --image=nginx $do > pod.yaml
# Deployments
k create deploy myapp --image=nginx --replicas=3
k create deploy myapp --image=nginx --replicas=3 $do > deploy.yaml
# Services
k expose deploy myapp --port=80 --target-port=8080 --type=NodePort
k expose pod mypod --port=80 --name=my-svc
# ConfigMaps
k create cm my-config --from-literal=key=value --from-file=config.txt
# Secrets
k create secret generic my-secret --from-literal=pass=secret123
# Jobs
k create job myjob --image=busybox -- echo "hello"
# CronJobs
k create cj mycj --image=busybox --schedule="*/5 * * * *" -- echo "hello"
# Ingress
k create ingress myingress --class=nginx --rule="host.com/path=svc:port"
# ServiceAccount
k create sa my-sa
# Namespace
k create ns my-namespace
YAML Editing Efficiency¶
Vim tips for the exam:
:set number # show line numbers
:set expandtab # use spaces instead of tabs
:set tabstop=2 # set tab width to 2
:set shiftwidth=2 # set indent width to 2
:set autoindent # enable auto-indent
# Quick navigation
gg # go to top
G # go to bottom
dd # delete line
yy # yank (copy) line
p # paste below
/pattern # search
n # next search result
u # undo
Add to ~/.vimrc at exam start:
set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
Documentation Navigation¶
- Bookmark the Tasks section:
kubernetes.io/docs/tasks/ - Search with Ctrl+F on documentation pages
- Key pages to know how to find:
- Pod spec reference
- Deployment spec
- Service types
- NetworkPolicy examples
- Ingress examples
- Probe configuration
- SecurityContext fields
Time Management Strategy¶
- First pass (80 minutes): Work through all tasks in order, skip anything that takes more than 8 minutes
- Second pass (30 minutes): Return to skipped tasks, attempt the ones you are most confident about
- Final pass (10 minutes): Verify completed work, attempt remaining tasks even if partial
Point Estimation: - Each task is worth a certain percentage - Higher-weighted domains likely have more tasks or higher-value tasks - Partial credit may be awarded - always attempt something even if incomplete
Common Pitfalls¶
Exam Pitfalls¶
- Not switching context: Each task may use a different cluster/context. Always run the provided
kubectl config use-contextcommand at the start of each task. - Wrong namespace: Always verify you are in the correct namespace. Use
kn <namespace>or append-n <namespace>to every command. - YAML indentation: A single space error breaks your manifest. Use
kubectl apply --dry-run=server -o yamlto validate before applying. - Overthinking: The exam tests practical skills, not deep theory. If a task seems simple, it probably is.
- Not verifying: Always check that your resource was created correctly (
kubectl get,kubectl describe).
Technical Pitfalls¶
- Probes:
initialDelaySecondsis critical for slow-starting apps. Without it, the liveness probe may kill the container before it starts. - NetworkPolicies: Remember that once any NetworkPolicy selects a Pod, all traffic not explicitly allowed is denied. You may need to add DNS egress rules.
- Secrets: Values must be base64-encoded in YAML manifests, but
kubectl create secrethandles this automatically. - SecurityContext: Pod-level vs container-level fields are different.
runAsUsercan be at either level;capabilitiesis container-level only. - PVC access modes:
ReadWriteOncemeans single node, not single Pod. UseReadWriteOncePodfor single-Pod access.
Study Pitfalls¶
- Only reading, not doing: This exam is 100% hands-on. Reading docs without practicing in a cluster will not prepare you.
- Memorizing YAML: Instead of memorizing, learn to generate YAML with
--dry-run=client -o yamland edit from there. - Ignoring time pressure: Practice under timed conditions. Being able to do a task in 20 minutes is not the same as doing it in 6 minutes.
- Skipping security topics: Domain 4 (Configuration and Security) is 25% of the exam - the largest single domain. Do not neglect it.
Recommended Resources¶
| Resource | Type | Notes |
|---|---|---|
| Kubernetes Official Docs | Documentation | Your primary reference - allowed during the exam |
| killer.sh | Practice Exam | Included with exam purchase, very realistic |
| kubectl Cheat Sheet | Reference | Essential commands in one page |
| Kubernetes the Hard Way | Tutorial | Deep understanding of cluster internals |
| CKAD Exercises (GitHub) | Practice | Community-maintained exercise collection |
| Play with Kubernetes | Lab | Free browser-based cluster |
| KodeKloud CKAD Course | Course | Structured video course with labs |