Thirty days. That’s all the time you need to pass the CKA exam — if you study smart and practice consistently. This isn’t about cramming. It’s about a structured plan that covers every exam domain with enough hands-on repetition to make the commands second nature.
This plan assumes you have basic Kubernetes familiarity (you know what pods, deployments, and services are). If you’re brand new to Kubernetes, add 2-3 weeks of foundational learning first.
The Plan at a Glance
| Week | Focus | Daily Time |
|---|---|---|
| Week 1 | Core concepts + cluster architecture | 1.5-2 hours |
| Week 2 | Networking, storage, and workloads | 1.5-2 hours |
| Week 3 | Troubleshooting + hands-on practice | 2 hours |
| Week 4 | Full exam simulations + weak area review | 2-3 hours |
Total commitment: ~60-70 hours over 30 days.
Before You Start
Set Up Your Practice Environment
Install CK-X, the free open-source Kubernetes exam simulator. You’ll use it every day from Week 2 onward.
curl -fsSL https://raw.githubusercontent.com/sailor-sh/CK-X/master/scripts/install.sh | bash
# Access at http://localhost:30080
Bookmark These Resources
You’re allowed to access the official Kubernetes documentation during the exam. Bookmark these pages now and get comfortable navigating them:
Set Up Your Aliases
Use these from day one so they become automatic:
alias k=kubectl
alias kgp='kubectl get pods -o wide'
alias kgs='kubectl get svc'
alias kgn='kubectl get nodes'
alias kd='kubectl describe'
export do='--dry-run=client -o yaml'
Week 1: Cluster Architecture & Core Concepts (25% of exam)
Goal: Understand how Kubernetes clusters work and how to manage them.
Day 1-2: Control Plane Deep Dive
Study the control plane components and what happens when each one fails:
# Check cluster health
kubectl cluster-info
kubectl get nodes -o wide
kubectl get pods -n kube-system
# Understand what runs on the control plane
# - kube-apiserver: API gateway for all cluster operations
# - etcd: key-value store for all cluster data
# - kube-scheduler: assigns pods to nodes
# - kube-controller-manager: runs control loops
# - kubelet: agent on each node
# - kube-proxy: handles networking rules
Practice: Describe each kube-system pod and understand its role.
Day 3-4: Cluster Installation with kubeadm
This is a critical exam topic. Practice the full cluster bootstrap sequence:
# Initialize a control plane node
kubeadm init --pod-network-cidr=10.244.0.0/16
# Join worker nodes
kubeadm token create --print-join-command
# Install a CNI plugin
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
Day 5: Cluster Upgrades
Practice upgrading clusters with kubeadm — this appears frequently on the exam:
# Check available versions
kubeadm upgrade plan
# Upgrade control plane
apt-get update && apt-get install -y kubeadm=1.xx.x-00
kubeadm upgrade apply v1.xx.x
# Upgrade each node
kubectl drain <node> --ignore-daemonsets
apt-get update && apt-get install -y kubelet=1.xx.x-00 kubectl=1.xx.x-00
systemctl daemon-reload && systemctl restart kubelet
kubectl uncordon <node>
Day 6: etcd Backup and Restore
Know these commands cold:
# Backup
ETCDCTL_API=3 etcdctl snapshot save /tmp/backup.db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key
# Verify
ETCDCTL_API=3 etcdctl snapshot status /tmp/backup.db
# Restore
ETCDCTL_API=3 etcdctl snapshot restore /tmp/backup.db \
--data-dir=/var/lib/etcd-backup
Day 7: Review & Practice
Review everything from this week. Attempt the CK-X CKA cluster architecture labs without a timer.
Week 2: Networking, Storage & Workloads (45% of exam)
Goal: Master the three domains that together make up nearly half the exam.
Day 8-9: Services and Networking (20%)
# Create services of different types
kubectl expose deployment web --port=80 --type=ClusterIP
kubectl expose deployment web --port=80 --type=NodePort
kubectl expose deployment web --port=80 --type=LoadBalancer
# DNS resolution
kubectl run test --image=busybox --rm -it --restart=Never -- nslookup web-service.default.svc.cluster.local
# Ingress
kubectl create ingress web --rule="app.example.com/=web-svc:80"
Day 10-11: Network Policies
Network policies trip up many candidates. Practice these patterns:
# Default deny all ingress in a namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
namespace: production
spec:
podSelector: {}
policyTypes:
- Ingress
---
# Allow specific traffic
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend
namespace: production
spec:
podSelector:
matchLabels:
app: api
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- port: 8080
Day 12-13: Storage (10%)
# PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-data
spec:
capacity:
storage: 1Gi
accessModes: ["ReadWriteOnce"]
hostPath:
path: /data/pv
---
# PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 500Mi
Practice mounting PVCs in pods and understand StorageClasses.
Day 14: Workloads and Scheduling (15%)
# Taints and tolerations
kubectl taint nodes node1 dedicated=special:NoSchedule
# Node affinity
# Practice writing affinity rules in pod specs
# Resource requests and limits
kubectl set resources deployment web --requests=cpu=100m,memory=128Mi --limits=cpu=200m,memory=256Mi
# DaemonSets, StatefulSets, Jobs, CronJobs
kubectl create job backup --image=busybox -- echo "backup complete"
kubectl create cronjob cleanup --image=busybox --schedule="0 * * * *" -- echo "cleaned"
Week 3: Troubleshooting & Hands-On Practice (30% of exam)
Goal: Build a systematic troubleshooting approach and start timed practice.
Day 15-17: Troubleshooting Framework
Troubleshooting is the highest-weighted domain (30%). Develop a systematic approach:
# Level 1: Cluster health
kubectl get nodes
kubectl get pods -A | grep -v Running
kubectl get events --sort-by='.lastTimestamp'
# Level 2: Pod diagnostics
kubectl describe pod <pod-name>
kubectl logs <pod-name>
kubectl logs <pod-name> --previous
# Level 3: Node diagnostics
ssh <node>
systemctl status kubelet
journalctl -u kubelet --no-pager | tail -50
# Level 4: Network diagnostics
kubectl get svc
kubectl get endpoints
kubectl exec -it <pod> -- curl <service-ip>:<port>
Day 18-19: Common Break-Fix Scenarios
Practice fixing these common issues:
- Kubelet not running on a node
- Incorrect certificate paths in kubelet config
- Broken DNS resolution (CoreDNS issues)
- Pod stuck in Pending (scheduling issues)
- Pod stuck in CrashLoopBackOff (application errors)
- Service not routing to pods (label mismatches)
- PVC stuck in Pending (no matching PV)
Day 20-21: CK-X Timed Practice
Switch to timed mode in CK-X. Do full CKA exam runs:
- Day 20: First timed attempt. Don’t worry about the score — identify which topics slow you down.
- Day 21: Second attempt. Focus on the areas where you lost time yesterday.
Track your scores. Aim for 60%+ on your first timed attempts.
Week 4: Exam Simulations & Final Review
Goal: Consistently score 80%+ in simulated conditions and sharpen weak areas.
Day 22-24: Target Weak Areas
Based on your Week 3 scores, dedicate these days to your weakest domains. Common trouble spots:
- etcd operations — Practice backup/restore until the commands are muscle memory
- Network policies — Write 5 different policies from scratch
- Cluster upgrades — Run through the full upgrade sequence multiple times
- RBAC — Create roles, rolebindings, clusterroles, and clusterrolebindings
Day 25-27: Full Simulations
Do a full simulation every day:
- Use only the official Kubernetes documentation
- Close all other tabs and notes
- Set a strict 2-hour timer
- Review missed questions immediately after each session
If you’re consistently scoring 80%+ in CK-X, you’re ready. If you want additional variety and a larger question bank to stress-test your readiness, the CKA Mock Exam Bundle provides more practice exams with AI-powered analysis of your weak areas.
Day 28-29: Confidence Building
- Do one more full simulation — aim for 85%+
- Review your most common mistakes and write them on a checklist
- Practice your exam-start routine: set aliases, check contexts, test kubectl
Day 30: Rest and Prepare
- Do not study. Your brain needs rest to consolidate what you’ve learned.
- Verify your exam system requirements
- Prepare your testing environment (clean desk, valid ID, stable internet)
- Get a good night’s sleep
Daily Routine Template
Here’s what a typical study day looks like:
| Time | Activity | Duration |
|---|---|---|
| Start | Review yesterday’s weak areas | 15 min |
| +15 min | Study new topic (read docs + take notes) | 30 min |
| +45 min | Hands-on practice in CK-X | 45 min |
| +90 min | Quick review of commands used today | 15 min |
Total: ~1.5 hours on weekdays, 2-3 hours on weekends.
The Mindset Shift
Many candidates study by reading and watching videos for weeks, then panic when they sit down for the actual hands-on exam. This plan is designed to flip that ratio:
- Week 1: 70% reading, 30% practice
- Week 2: 50% reading, 50% practice
- Week 3: 20% reading, 80% practice
- Week 4: 0% reading, 100% practice
By exam day, your fingers should know the commands before your brain finishes processing the question. That’s the level of muscle memory you’re building.
Conclusion
Thirty days is enough to pass the CKA if you follow a structured plan and prioritize hands-on practice over passive learning. The CK-X simulator gives you a free, realistic practice environment from day one — use it daily.
Stick to the plan, trust the process, and on day 31, you’ll be CKA certified.