Free, browser-based kubectl practice. No cluster to spin up, no kubeadm init, no
waiting. Open a terminal in the browser and type.
This repository holds the written material: the exam breakdown, a command reference built around what the exam actually asks, and practice scenarios you can work through anywhere. The simulator runs them interactively.
| Domain | Weight | What it means in practice |
|---|---|---|
| Troubleshooting | 30% | A broken cluster and a clock. Kubelet down, pods Pending, DNS failing. |
| Cluster Architecture, Installation & Configuration | 25% | kubeadm, static pods, etcd backup/restore, RBAC, upgrades. |
| Services & Networking | 20% | Services, Ingress, Gateway API, NetworkPolicy, CoreDNS. |
| Workloads & Scheduling | 15% | Deployments, rollouts, taints/tolerations, affinity, ConfigMaps. |
| Storage | 10% | PV, PVC, StorageClass, access modes, reclaim policies. |
2 hours. 15–20 performance-based tasks. 66% to pass. $445 (includes one retake and Killer.sh).
Two things people get wrong about the weights:
Troubleshooting is the biggest domain and cannot be revised for. You can memorise
kubectl create deployment. You cannot memorise the shape of a broken cluster. This
is the part that needs repetition against real failures.
Gateway API is now examinable. Ingress NGINX was retired in March 2026 and the curriculum moved with it. If your study material predates that, it is teaching you a deprecated API.
You get roughly six minutes per task. Almost everyone who fails knows the material and runs out of time. The fixes are unglamorous:
Imperative first, YAML only when forced. kubectl create deployment web --image=nginx --replicas=3 is one line. The equivalent YAML is twenty and every one
is a chance to mistype an indent. Reach for --dry-run=client -o yaml only when you
need to edit something the flags cannot express.
Learn kubectl explain. You are allowed kubernetes.io, but searching it costs a
minute you do not have. kubectl explain pod.spec.containers.livenessProbe
answers most field questions in two seconds.
Set the namespace once. kubectl config set-context --current --namespace=x
beats typing -n x forty times, and forgetting it once costs you the task.
Know what you cannot change. spec.selector on a Deployment, spec.serviceName
on a StatefulSet, spec.nodeSelector on a running Pod — all immutable. The API
server answers Forbidden and the fix is to recreate, not to patch. Recognising
that instantly is worth several minutes across an exam.
- cluster-architecture.md — practice tasks for the 25% domain: static pods, etcd, RBAC.
- troubleshooting.md — practice tasks for the largest domain, 30%.
- kubectl-imperative.md — the imperative commands worth memorising, and what each replaces.
- troubleshooting-order.md — the diagnostic sequence for a broken cluster, in the order that finds it fastest.
Every scenario here is solvable in the browser simulator, which validates your work against cluster state rather than against the commands you typed — so a workaround that a real cluster would reject is rejected there too.
- Killer.sh — included with your exam registration, harder than the real thing. Take both sessions.
- kubernetes.io/docs — the only external site allowed during the exam. Practise navigating it under time pressure.
- Benjamin Muschko's CKA Study Guide (O'Reilly)
- CNCF CARE program — taking or recertifying CKA auto-renews KCNA.
Corrections welcome, particularly if the curriculum moves. Kubernetes releases three times a year and the exam tracks it with a lag; anything here that has gone stale is worth a PR.
Content: CC BY 4.0. Use it in your own study notes.