CKA (Certified Kubernetes Administrator) Exam Guide 2026
The CKA (Certified Kubernetes Administrator) is the most respected hands-on Kubernetes credential in the industry. Unlike multiple-choice exams, it tests you in a live Kubernetes environment with 17 real tasks to complete in 2 hours. This 2026 guide covers every domain, a kubectl cheat sheet, killer.sh tips, and a proven 8-week preparation strategy.
The CKA (Certified Kubernetes Administrator) certification, offered by the Cloud Native Computing Foundation (CNCF) and the Linux Foundation, is the industry's gold standard for Kubernetes operations skills. Unlike most IT certifications that test you with multiple-choice questions, the CKA is a performance-based exam — you work in a live Kubernetes environment for two hours, completing 17 real-world tasks using kubectl and other command-line tools. There is no multiple choice, no memorization of terminology alone, and no shortcuts: you either know how to configure a cluster or you do not. This reputation makes the CKA genuinely meaningful to hiring managers, and it is one of the most commonly required certifications for DevOps, SRE, and Platform Engineering roles in 2026.
Exam Format and What to Expect
The CKA exam experience is unlike any other certification you may have taken. Understanding the logistics before exam day eliminates surprises and lets you focus entirely on the tasks.
| Detail | Value |
|---|---|
| Format | Performance-based (live CLI environment, no multiple choice) |
| Number of Tasks | ~17 tasks across multiple Kubernetes clusters |
| Time Limit | 2 hours (120 minutes) |
| Passing Score | 66% |
| Exam Cost | $395 USD (includes one free retake) |
| Delivery | Online proctored (PSI bridge) — no testing center option |
| One Allowed Resource | kubernetes.io/docs and its subdomains (open in exam browser tab) |
| Validity | 2 years |
| Results | Score report within 24 hours via email |
The exam is delivered through a PSI secure browser. You work in a remote desktop environment with a terminal connected to real Kubernetes clusters. Each task specifies which cluster context to use — you must switch contexts using kubectl config use-context at the start of each task. Forgetting to switch contexts is one of the most common causes of lost marks.
You are permitted to keep one additional browser tab open to kubernetes.io/docs. You can use the search function and navigate to any page on the official docs. You cannot use Google, GitHub, Stack Overflow, or any other external sites. Practice navigating the Kubernetes documentation efficiently — knowing where to find example YAML for PersistentVolumeClaims, NetworkPolicies, and RBAC resources will save you significant time.
The Five Exam Domains with Weights
The CKA curriculum (v1.32) is organized into five content domains. Each domain maps to real day-to-day cluster administration tasks:
Domain 1: Cluster Architecture, Installation, and Configuration — 25%
This is the heaviest domain. It covers RBAC (roles, cluster roles, role bindings, cluster role bindings), bootstrapping a Kubernetes cluster using kubeadm, upgrading cluster components with kubeadm, managing etcd (backup and restore using etcdctl), understanding the control plane components (kube-apiserver, kube-scheduler, kube-controller-manager, etcd), and configuring highly available control plane nodes. The etcd backup and restore task appears on almost every CKA exam — practice this until it is muscle memory.
Domain 2: Workloads and Scheduling — 15%
Covers Deployments, DaemonSets, StatefulSets, Jobs, CronJobs, and how to manage rolling updates and rollbacks. You must know how to configure resource requests and limits, use node affinity and anti-affinity, taints and tolerations, and understand how the kube-scheduler selects nodes. ConfigMaps and Secrets management also falls here.
Domain 3: Services and Networking — 20%
This domain tests your ability to expose applications: ClusterIP, NodePort, and LoadBalancer service types, Ingress resources and Ingress controllers, CoreDNS configuration, and most importantly NetworkPolicies. NetworkPolicy questions are notoriously tricky — they require you to write YAML that controls pod-to-pod and pod-to-external traffic using label selectors. Practice writing NetworkPolicies from scratch without copying templates.
Domain 4: Storage — 10%
PersistentVolumes (PVs), PersistentVolumeClaims (PVCs), and StorageClasses. You need to know how to create PVs with specific access modes (ReadWriteOnce, ReadOnlyMany, ReadWriteMany) and reclaim policies (Retain, Delete), bind a PVC to a specific PV using selectors, and configure pods to use PVCs as volumes. Volume types (emptyDir, hostPath, configMap, secret) are also tested.
Domain 5: Troubleshooting — 30%
The largest single domain. Troubleshooting covers: diagnosing application failures (CrashLoopBackOff, ImagePullBackoff, OOMKilled), cluster component failures (kubelet not running, API server unreachable), node failures (cordoning, draining, fixing NotReady nodes), and examining logs with kubectl logs, kubectl describe, and journalctl. This is where experienced practitioners pull ahead — practice deliberately breaking clusters and fixing them.
Imperative vs Declarative kubectl Cheat Sheet
Speed is critical in the CKA. Using imperative commands to generate starter YAML files is far faster than writing from scratch. The exam environment has no code editor with Kubernetes YAML support — you work in vim or nano. Here are the essential patterns:
| Task | Imperative Command |
|---|---|
| Create a Pod | kubectl run nginx --image=nginx --restart=Never |
| Generate Pod YAML (dry run) | kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml |
| Create a Deployment | kubectl create deployment app --image=nginx --replicas=3 |
| Generate Deployment YAML | kubectl create deployment app --image=nginx --dry-run=client -o yaml > deploy.yaml |
| Expose Deployment as Service | kubectl expose deployment app --port=80 --target-port=8080 --type=ClusterIP |
| Create ConfigMap from literal | kubectl create configmap app-config --from-literal=key1=value1 |
| Create Secret (generic) | kubectl create secret generic db-secret --from-literal=password=s3cr3t |
| Create ServiceAccount | kubectl create serviceaccount monitoring-sa -n monitoring |
| Create Role | kubectl create role pod-reader --verb=get,list,watch --resource=pods -n default |
| Bind Role to ServiceAccount | kubectl create rolebinding sa-binding --role=pod-reader --serviceaccount=default:monitoring-sa |
| Drain a node | kubectl drain node01 --ignore-daemonsets --delete-emptydir-data |
| Switch cluster context | kubectl config use-context k8s-cluster-1 |
| Get events (sorted by time) | kubectl get events --sort-by=.lastTimestamp -n default |
| Backup etcd | ETCDCTL_API=3 etcdctl snapshot save /backup/etcd.db --endpoints=https://127.0.0.1:2379 --cacert=... --cert=... --key=... |
3 Sample Tasks with Solutions
The following tasks are representative of CKA exam difficulty. For each, read the task description, attempt a solution, then review the provided answer.
Task 1: Create a Pod with Resource Limits
Task: In the default namespace on cluster k8s-prod, create a Pod named resource-pod using the image nginx:1.25. Configure the container with a CPU request of 100m, a CPU limit of 200m, a memory request of 128Mi, and a memory limit of 256Mi. The pod must remain running.
Solution:
kubectl config use-context k8s-prod kubectl run resource-pod --image=nginx:1.25 --dry-run=client -o yaml > resource-pod.yaml # Edit resource-pod.yaml to add resources block under the container spec: # resources: # requests: # cpu: "100m" # memory: "128Mi" # limits: # cpu: "200m" # memory: "256Mi" kubectl apply -f resource-pod.yaml # Verify kubectl get pod resource-pod kubectl describe pod resource-pod | grep -A 6 Limits
Task 2: Create a NetworkPolicy
Task: In namespace web-ns, create a NetworkPolicy named web-policy that allows ingress traffic to pods labeled app=frontend only from pods labeled app=backend in the same namespace, on port 80. All other ingress to app=frontend pods must be denied.
Solution:
kubectl config use-context k8s-prod
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: web-policy
namespace: web-ns
spec:
podSelector:
matchLabels:
app: frontend
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: backend
ports:
- protocol: TCP
port: 80
EOF
# Verify
kubectl describe networkpolicy web-policy -n web-ns
Task 3: Backup and Restore etcd
Task: Create a snapshot backup of the etcd cluster to /opt/etcd-backup.db. The etcd server runs on https://127.0.0.1:2379 with TLS certificates at /etc/kubernetes/pki/etcd/.
Solution:
# First, confirm the etcd endpoint and cert paths kubectl describe pod etcd-controlplane -n kube-system | grep -E "listen-client|cert-file|key-file|trusted-ca" ETCDCTL_API=3 etcdctl snapshot save /opt/etcd-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 the snapshot ETCDCTL_API=3 etcdctl snapshot status /opt/etcd-backup.db --write-out=table
killer.sh Simulator Tips
Every CKA registration includes two free sessions on killer.sh, the premier CKA practice simulator. These sessions are intentionally harder than the real exam — many candidates score 40–60% on killer.sh and still pass the actual CKA. Here is how to use it effectively:
- Do not use your first killer.sh session until you have completed at least 80% of your study plan. The simulator is most valuable as a final assessment tool, not as a learning tool for beginners. Using it too early wastes the session and can be demoralizing.
- Use the first session with a 2-hour time limit enforced. Sit down, set a timer, complete as many tasks as possible, and submit. Do not look up answers during the session — treat it exactly like the real exam.
- Spend 2–3 hours after the first session reviewing every task, including the ones you got right. The killer.sh solutions often show more efficient approaches than you used.
- Use the second session 3–4 days before your real exam as a final confidence calibration. At this point you should be scoring 65%+ on killer.sh, which typically correlates with a comfortable pass on the real exam.
Environment Setup: tmux, Aliases, Bash Completion
The exam environment supports customization of the terminal. Setting up your environment at the start of the exam takes 2 minutes but saves 10+ minutes over 120 minutes of work. Practice these setups until they are automatic:
# Enable kubectl bash completion (run once at start of exam) source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc # Set essential aliases alias k=kubectl alias kgp="kubectl get pods" alias kgs="kubectl get svc" alias kgn="kubectl get nodes" alias kdp="kubectl describe pod" complete -F __start_kubectl k # Set default namespace shortcut (update per task) export do="--dry-run=client -o yaml" export now="--force --grace-period 0" # Example usage: # k run nginx --image=nginx $do > pod.yaml # k delete pod nginx $now
Using tmux for Split Panes
tmux allows you to split the terminal into multiple panes — one for running kubectl commands and one for editing YAML files simultaneously. The basic setup:
tmux— start a new sessionCtrl+B, %— split verticallyCtrl+B, "— split horizontallyCtrl+B, arrow key— switch between panes
8-Week Study Timeline
- Set up a local cluster with kind or minikube (or use Killercoda free scenarios)
- Deploy applications with kubectl run, create, apply — get comfortable with the CLI
- Study core objects: Pods, ReplicaSets, Deployments, Services, Namespaces
- Complete "Kubernetes for Absolute Beginners" by Mumshad Mannambeth (KodeKloud)
- Bootstrap a cluster with kubeadm — do this at least three times from scratch
- Practice RBAC: create roles, cluster roles, bindings, and service accounts
- Configure PersistentVolumes, PVCs, and StorageClasses
- Practice etcd backup and restore until it takes less than 3 minutes
- Write NetworkPolicies from scratch — ingress-only, egress-only, and combined
- Configure Ingress resources with path-based and host-based routing
- Practice taints, tolerations, node affinity, and pod affinity rules
- Study CoreDNS: how pod DNS resolution works, how to debug DNS failures
- Work through deliberate break-and-fix scenarios (KodeKloud CKA course labs are excellent for this)
- Use your first killer.sh session and spend a full day reviewing solutions
- Practice navigating kubernetes.io/docs efficiently — find PVC, NetworkPolicy, and RBAC examples in under 30 seconds each
- Use your second killer.sh session 3–4 days before exam day; schedule the real exam if scoring 65%+
Ready to Practice?
Reinforce your Kubernetes knowledge with our full CKA practice exam — 340 scenario-based questions covering all five domains, with detailed explanations for every answer.
Browse Practice Exams →
Comments
No comments yet. Be the first!
Comments are reviewed before publication.