CertLumen

Free study guide · DevOps

How to pass the Certified Kubernetes Administrator (CKA)

What the exam covers, how to plan your study, and how to read its questions. From the CertLumen course for this exam, kept up to date with the official exam guide.

Format
About 15–20 hands-on tasks in a terminal
Time
120 minutes
Passing score
66%
Exam fee
USD 445 (exam only; bundles cost more), one free retake included; two killer.sh simulator sessions included (36 hours each, 17 tasks)
Valid for
2 years; renew by retaking and passing the current exam before expiry (earning or renewing CKS from 18 June 2026 extends CKA to match)
Delivery
Online proctored; performance-based tasks solved in a terminal on live Kubernetes clusters

What the exam covers

Cluster Architecture, Installation and Configuration25%
Workloads and Scheduling15%
Services and Networking20%
Storage10%
Troubleshooting30%

A study plan that works

The default path. It covers all 20 lessons and all 10 labs in order, with a section drill after each section and flashcards on most days. Troubleshooting (30%) and cluster setup (25%) get the most days. Mock exams and the first killer.sh session fill the last three days, as the real exam is hands-on and wants stamina. Lab days are longer than lesson days: the kubeadm lab alone is about two hours. Plan on about 1.5–3 hours a day.

DayFocusTime
1RBAC and building a cluster with kubeadm110 min
2Lifecycle, high availability and the kubeadm lab175 min
3Helm, Kustomize, CRDs and operators170 min
4k1 drill, Deployments and configuration170 min
5Autoscaling, self-healing and scheduling190 min
6Pod connectivity, network policies, Services165 min
7Gateway API, Ingress and CoreDNS195 min
8Storage210 min
9Troubleshooting nodes and the control plane160 min
10Monitoring and logs155 min
11Services and networking faults, then the k5 drill140 min
12Mock Exam 1 and review240 min
13Mock Exam 2 and killer.sh session 1300 min
14Mock Exams 3 and 4, final review and exam day300 min

Exam strategy

How the exam works

The CKA is a hands-on, performance-based exam. You do not pick answers: you sit at a Linux remote desktop with a terminal and solve a series of tasks on live Kubernetes clusters, then an automatic grader checks the state of the clusters. It is delivered online and proctored by PSI. The exam environment follows the current Kubernetes minor version (v1.37 today); the Linux Foundation updates it within about four to eight weeks of a new release.

FactDetail (Linux Foundation CKA page, exam FAQ and tips pages)
NameCertified Kubernetes Administrator (CKA), from the Linux Foundation and the CNCF
FormatPerformance-based tasks solved in a terminal on live Kubernetes clusters; no multiple choice
Time limit2 hours
Number of tasksThe tips page says 15 to 20 tasks. Tasks are not equal in weight
Passing score66%
CurriculumCKA Curriculum v1.37 (github.com/cncf/curriculum); exam environment on Kubernetes v1.37
DomainsTroubleshooting 30%, Cluster Architecture, Installation and Configuration 25%, Services and Networking 20%, Workloads and Scheduling 15%, Storage 10%
FeeUSD 445 for the exam alone, with one free retake included and two killer.sh sessions
Validity2 years. Renew by passing the current exam before it expires; earning or renewing CKS on or after 18 June 2026 extends your CKA to match
LanguagesTasks in English, Simplified Chinese and Japanese (the terminal and proctor chat stay in English)
ResultsScored automatically; the score report is emailed within 24 hours
PrerequisitesNone. The Linux Foundation rates it intermediate
Booking window12 months from purchase to take the exam and any retake
This course's practice exams are multiple choice; the real exam is not

The 40-question mock exams test what you know. The labs and your own practice clusters train the speed. Do both: most candidates who fail know the material but run out of time typing YAML, hunting for field names or fixing the wrong cluster. Treat each lab as a speed drill and redo it without notes.

What you get at the keyboard

  • A remote desktop opened inside the PSI Secure Browser, with a terminal, a Firefox window for the allowed documentation and a VSCodium editor (extensions are disabled).
  • kubectl with the k alias and bash completion, yq, curl, wget and man pages are already installed on the work hosts.
  • Each task names the cluster or host to use. For node work you ssh <node>, use sudo -i for root, and exit to come back to the base system. Nested SSH does not work and you must not reboot base.
  • A timer shows the minutes left, with alerts at 30, 15 and 5 minutes. Pause does not stop it, and a lost connection does not give time back.
  • Copy and paste in the terminal use Ctrl+Shift+C and Ctrl+Shift+V. The Insert key is disabled, so in vi press i to insert and Esc to leave insert mode.

The documentation you may open

You may use only the sites in the Linux Foundation *Resources Allowed* document, in the Firefox window inside the exam. For the CKA they are the Kubernetes documentation (kubernetes.io/docs) and blog (kubernetes.io/blog), the Helm documentation (helm.sh/docs) and the Gateway API documentation (gateway-api.sigs.k8s.io, CKA only), plus the task-specific links in each task's Quick Reference box. Searching inside kubernetes.io/docs is allowed, but you must not open external search results. Documentation installed with the operating system (under /usr/share) is allowed too.

Learn where things are, not what they say

You will have the docs, so memorising every field is a waste. Practise getting to the right page in seconds: the kubectl quick reference, the kubeadm upgrade page, the etcd backup page, the NetworkPolicy examples, the PV and PVC examples, and kubectl explain <resource>.spec in the terminal. A YAML snippet copied from the docs and edited is faster than one typed from memory.

Pacing

With 15 to 20 tasks in 120 minutes you have about six to eight minutes per task on average, and tasks vary: a RBAC task may take two minutes, a broken control plane fifteen. The weights are the lever. Do the quick tasks first, bank those points, and return to the long ones.

  1. First 5 minutes: confirm your tools work (k get nodes), set up aliases and vim settings, and skim the task list if the UI lets you.
  2. First pass (about 70 minutes): take tasks in order, skip any that need more than ten minutes, and write the skipped task numbers in a scratch file on the remote desktop. Notes on paper or devices are not allowed.
  3. Second pass (about 35 minutes): return to the skipped tasks, highest weight first.
  4. Last 10 minutes: re-check each task you finished: right cluster, right namespace, object exists, Pods Running. Fix any partial work.
Imperative first

k run, k create deployment, k expose, k create role, k create secret, k set image, k scale, k autoscale, k taint and k label write the object for you. Add $do > file.yaml to start a manifest, edit it, then k apply -f. Typing a Deployment from scratch costs a minute you do not have.

Reading a task

  • Cluster or context first: if a task names a cluster, context or host, switch before you do anything (kubectl config use-context <name>, or ssh <node>). Doing the right fix on the wrong cluster scores zero.
  • Namespace: note it, and add -n <ns> to every command, or set it with kubectl config set-context --current --namespace=<ns> and set it back afterwards.
  • Exact names: use the object, file, label, port and path names from the task, character for character. The grader looks for those.
  • What is checked: tasks end in a state (a Pod Running, a file with specific content, a Service reachable). Verify that state with a command before you move on.
  • Files to write: save outputs where the task says, for example kubectl logs ... > /opt/out.log. Check the file exists and is not empty.
  • Do not do extra: deleting or changing objects the task did not mention can break another task's check.

What each domain really tests

Domain (weight)Typical taskSpeed tip
Troubleshooting (30%)A NotReady node, a stopped control-plane component, a Service with no endpoints, a failing Pod, logs to a fileWork outside in: nodes, describe, then ssh and journalctl -u kubelet. Fix the manifest in /etc/kubernetes/manifests, not the mirror Pod
Cluster setup (25%)RBAC for a user or ServiceAccount, kubeadm upgrade, etcd snapshot and restore, Helm or Kustomize install, CRDsCopy the kubeadm and etcd commands from the docs, then edit versions and paths
Services and networking (20%)NetworkPolicy, Service types, Ingress or HTTPRoute, CoreDNS CorefileUse kubectl create ingress and doc examples; read the dash and indent rules in NetworkPolicy
Workloads and scheduling (15%)Rolling update and rollback, ConfigMap or Secret into a Pod, HPA, taints, tolerations, affinityrollout undo, set image, autoscale and taint are one-liners
Storage (10%)StorageClass, PV and PVC binding, reclaim policy, mounting a claim in a PodCheck storageClassName, size and access modes on both sides of a bind

Traps typical of this exam

  • Wrong context, host or namespace. The most expensive mistake and it costs a whole task. Look at the prompt, kubectl config current-context and hostname before every task.
  • Editing the mirror Pod. Deleting kube-apiserver-cp1 does nothing: the file in /etc/kubernetes/manifests is the source. The kubelet reloads it in seconds.
  • Forgetting to leave ssh. Run exit back to the base host before the next kubectl task, or you run kubectl where it has no kubeconfig.
  • RoleBinding with a ClusterRole is still namespaced. Only a ClusterRoleBinding grants cluster-wide access.
  • storageClassName omitted versus "". Omitted means the default class; empty means none, which is how you bind to a pre-made PV.
  • etcd restore needs etcdutl snapshot restore --data-dir <new dir> and then the etcd manifest's hostPath pointed at the new directory.
  • Upgrading in the wrong order: control plane first, upgrade apply once, upgrade node elsewhere, drain before kubelet, uncordon after.
  • drain flags: --ignore-daemonsets is almost always needed, --delete-emptydir-data when emptyDir Pods run.
  • A NetworkPolicy dash: namespaceSelector and podSelector in one list item are AND, in two items OR. A default-deny egress policy also blocks DNS.
  • Probes: readiness removes a Pod from Service endpoints, liveness restarts the container, startup protects slow starters.
  • Pending Pods: no events at all points to a dead scheduler; FailedScheduling means the scheduler works and found no fit.
  • Leaving files or Pods in a broken state while you try fixes. Undo experiments that did not work.
Do not trust a green-looking answer

A kubectl apply that prints created only proves the API accepted the object. A Deployment can exist with zero Pods Ready, a Service with no endpoints and a PVC stuck Pending. Run k get, k describe or a wget from a throwaway Pod before you call a task finished.

Debugging tactics when a command fails

  • Read the error line: forbidden is RBAC, no matches for kind is a missing CRD or wrong apiVersion, connection refused is a down component, not found is a wrong name or namespace.
  • kubectl explain <kind>.spec --recursive | less lists valid fields; kubectl api-resources lists kinds and short names.
  • kubectl describe shows Events at the bottom, where most causes are written.
  • kubectl get events -A --sort-by=.lastTimestamp | tail shows what just happened cluster-wide.
  • When kubectl itself is down, drop to the node: systemctl status kubelet, journalctl -u kubelet, crictl ps -a, crictl logs.

Using this course

ResourceUse it for
Lessons and cheat sheetLearn each domain and keep the syntax tables to revise from
Section drills (about 240 questions across five sections)Check recall and the scenario reasoning behind a command
Labs (10)Type the commands on a local kind or minikube cluster, and on two VMs for kubeadm
Mock Exams 1 to 4 (40 questions, 120 minutes each)Practise reading scenarios and elimination under time
killer.sh (two sessions of 17 tasks, 36 hours each)The only practice that feels like the real, hands-on exam; start a session only when you can give it two clear hours

Words that point to the answer

Phrases in a question that usually point to one answer. The course has the full list.

When the question saysThink of
A user must read Pods only in one namespaceRole plus RoleBinding in that namespace (kubectl create role and create rolebinding)
Reuse the built-in view or edit permissions in several namespacesA RoleBinding that references the ClusterRole in each namespace
A user with get pods cannot run kubectl logs or execAdd the pods/log or pods/exec sub-resource to the rule
Check whether a user or ServiceAccount may do somethingkubectl auth can-i <verb> <resource> --as <user> (add --list for all rules)
A new node must join but the token is oldkubeadm token create --print-join-command on the control plane
Nodes are NotReady and CoreDNS Pods are Pending right after kubeadm initInstall a CNI plugin
Upgrade a kubeadm cluster from 1.35 to 1.37Upgrade to 1.36 first, then 1.37
Upgrade the second control-plane node or a workerkubeadm upgrade node
Back up etcd on a kubeadm clusteretcdctl snapshot save with --endpoints, --cacert, --cert, --key
Restore an etcd snapshotetcdutl snapshot restore --data-dir <new dir>, then point the etcd static Pod hostPath at it

Revise from the cheat sheet

The course's cheat sheet has a page for each of these:

  • Cluster architecture, installation and configuration
  • Workloads and scheduling
  • Services and networking
  • Storage
  • Troubleshooting

Practise with the real exam's mix

296 exam-style questions, 4 timed practice exams, flashcards and an AI tutor.

See the course