CertLumen

Free study guide · DevOps

How to pass the Certified Kubernetes Application Developer (CKAD)

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% or above
Exam fee
USD 445 (exam only; bundles with THRIVE-ONE or the LFD259 course cost more), per the Linux Foundation page in November 2026
Valid for
2 years; renew by retaking and passing the current exam before it expires (CKAD earned before April 1, 2024 is valid for 3 years). One free retake is included and the exam must be taken within 12 months of purchase
Delivery
Online, proctored, performance-based: tasks solved at a command line on live Kubernetes clusters

What the exam covers

Application Design and Build20%
Application Deployment20%
Application Observability and Maintenance15%
Application Environment, Configuration and Security25%
Services and Networking20%

A study plan that works

The default path for developers who know Linux and have used kubectl before. It covers all 21 lessons and all 10 labs in order, with a section drill after each section and daily flashcards. Mock Exams 1 and 2 come on days 13 and 14, with Mocks 3 and 4 as optional extra practice. The practice exams are multiple-choice, so also use the labs and your two killer.sh sessions for the real, timed, terminal experience. Section 4 (Environment, Configuration and Security) is worth 25% and gets the most days. Schedule the real exam once you reach 80% on the mocks and finish a killer.sh session with time to spare. Plan on about 1–2 hours a day.

DayFocusTime
1Kick-off: the exam format and container images90 min
2Workload resources: Deployment, StatefulSet, DaemonSet, Job, CronJob100 min
3Multi-container Pods and volumes, then the c1 drill110 min
4Deployment strategies and rolling updates100 min
5Helm and Kustomize, then the c2 drill110 min
6API deprecations and probes90 min
7Monitoring, logs and debugging, then the c3 drill110 min
8CRDs, authentication, RBAC and admission100 min
9Requests, limits, quotas and ConfigMaps/Secrets110 min
10ServiceAccounts and security contexts, then the c4 drill110 min
11NetworkPolicies and Services100 min
12Ingress, then the c5 drill90 min
13Weak areas and Mock Exam 1120 min
14Mock Exam 2 and exam readiness120 min

Exam strategy

How the exam works

The CKAD is a performance-based exam: you solve tasks at a command line on live Kubernetes clusters, not multiple-choice questions. The Linux Foundation's tips page says to expect 15 to 20 tasks in 2 hours. A proctor watches you through audio, video and screen sharing. The score report is emailed within 24 hours, normally, and you need 66% to pass. Each task has a weight shown with it, and most tasks can earn partial credit, so a half-finished task is worth more than a skipped one.

FactDetail (Linux Foundation pages, November 2026)
FormatPerformance-based tasks at a Linux command line; about 15 to 20 tasks
Duration2 hours
Passing score66%
Kubernetes versionThe environment runs Kubernetes v1.37 and is updated to each new minor version about 4 to 8 weeks after its release
Domains and weightsApplication Design and Build 20%, Application Deployment 20%, Observability and Maintenance 15%, Environment, Configuration and Security 25%, Services and Networking 20%
DeliveryOnline, proctored through PSI (Bridge). You work in a remote desktop with a terminal and a browser
Allowed resourceskubernetes.io/docs, kubernetes.io/blog and helm.sh/docs (plus pages linked from the task), and the site's own search, but no external search results. Gateway API docs are for the CKA only
PriceUSD 445 for the exam only
Validity2 years (certifications earned before April 1, 2024 last 3 years). Renew by passing the current exam
Retake and windowOne free retake is included; use the exam within 12 months of purchase
SimulatorTwo killer.sh sessions, 36 hours each, 17 graded tasks
LanguagesEnglish, Simplified Chinese and Japanese
This course's practice exams are multiple-choice

The real exam has no answer options. This course's four mock exams are multiple-choice (some multiple-select) because the site can only grade that, so they train your knowledge and speed of recall. The labs and the two killer.sh sessions train the terminal work. Do both: pass the mocks and finish a killer.sh run in time.

The terminal you will use

You work in a remote desktop provided by PSI. Each task starts with an infobox that tells you which cluster context to use and which host to ssh to; run exit afterwards to return to the base system. kubectl with the k alias and bash completion, plus yq, curl, wget and man, are installed on the task hosts. You cannot nest SSH. In the Linux terminal copy with Ctrl+Shift+C and paste with Ctrl+Shift+V. The INSERT key is prohibited, so use i and Esc in vim.

Switch context first, every task

Each task names its own cluster or context, for example kubectl config use-context k8s-c2. Running the right command on the wrong cluster scores zero for that task. Copy the context command from the task box and run it before anything else, and check the namespace the task names.

Pacing: 2 hours, about 17 tasks

Average about 6 to 7 minutes a task, but they are not equal. Weights run from about 2% to 8%. Read all the weights quickly at the start, do the cheap high-value ones first, flag long tasks and come back.

TimeWhat to do
First 5 minutesSet up your shell, skim the task list and weights
Next 80 minutesWork the tasks in order of value per minute; leave anything that will take more than 10 minutes
Next 25 minutesReturn to the flagged tasks
Last 10 minutesVerify: kubectl get for every object you created, check namespaces, labels and names

The k alias is already there on the task hosts, but the exports are not, and setting them costs 20 seconds. now makes pod deletes instant; use it only on Pods you created, not on controllers.

Speed rules

  • Generate, don't type: k run web --image=nginx $do > p.yaml, k create deploy web --image=nginx --replicas=3 $do, k create job, k create cronjob, k create role, k create rolebinding, k create ingress, k expose.
  • Use kubectl explain pod.spec.containers.securityContext --recursive for field names before you open the docs.
  • When you need YAML that kubectl cannot generate (probes, volumes, NetworkPolicy, PV, PVC), copy it from kubernetes.io/docs, paste it into a file and edit. Search with the docs' search box and open the concept or task page.
  • Prefer k edit for small changes to live objects and k replace --force -f for Pods whose fields are immutable.
  • Always verify: k get, k describe, k logs and k rollout status after the change.

How to read a task

Tasks are short, precise and literal. Names, namespaces, labels, ports and file paths in the task must be matched exactly: a Pod called web-app is not webapp. Underline the verbs (create, expose, scale, fix, save to a file) and the nouns that give you the resource type (every node, once a day, only from, sidecar).

Wording in a taskThink
every node, one Pod per nodeDaemonSet
stable network identity, own disk eachStatefulSet with a headless Service and volumeClaimTemplates
run to completion / every night at 02:00Job / CronJob
two versions never at onceDeployment strategy.type: Recreate
about 20% of traffic goes to the new versionCanary: a second Deployment behind the same Service selector
restart the container if it hangs / only send traffic when ready / slow startliveness / readiness / startup probe
only X can reach YNetworkPolicy
by host name and pathIngress
without recreating the Pod, change CPUIn-place resize with --subresource resize

Traps that cost points on the CKAD

  • Wrong namespace or context. The most common avoidable failure. Use -n explicitly or set the namespace on the context.
  • Selector versus labels. A Service, Deployment or NetworkPolicy selects Pod labels from the template, not the metadata of the Deployment.
  • command versus args. command replaces ENTRYPOINT and args replaces CMD.
  • Immutable fields. Deployment selectors, Pod specs, RoleBinding roleRef, and a Pod's serviceAccountName cannot be changed in place.
  • ConfigMap and Secret updates. Env variables and subPath mounts never refresh; volume mounts refresh eventually.
  • runAsNonRoot needs a numeric user when the image runs as root.
  • Default-deny egress also blocks DNS.
  • AND versus OR in NetworkPolicy is decided by whether the selectors share a list item.
  • Helm needs -n. helm list shows only the current namespace; use -A to find the release.
  • Typos in indentation. Run kubectl apply --dry-run=server or k apply -f and read the error before moving on.
Don't rely on a green apply

kubectl apply succeeding does not mean the Pod runs. A Deployment with a bad image applies fine. Always check k get pods and k rollout status, and read k describe if a Pod is not Running.

Using the documentation well

You may keep one browser with kubernetes.io/docs, kubernetes.io/blog and helm.sh/docs. Know where things live so you never browse: the Tasks section has copy-ready YAML for probes, volumes, Pod security, ConfigMaps and Secrets, ServiceAccounts and Services; Concepts has NetworkPolicy, Ingress, PV and PVC examples; the kubectl Quick Reference has jsonpath, rollout and top syntax. Search for the object name plus 'task' or 'concept' and open the first kubernetes.io hit.

What to do in the last week

  1. Take Mock Exam 3 and Mock Exam 4 and redo anything below 80%.
  2. Run your second killer.sh session as a real timed 2-hour attempt; the questions differ from the first session, and you should compare your time per task.
  3. Re-do every lab with the lesson closed.
  4. Write these from memory: a hardened Pod, a NetworkPolicy with AND selectors, a PV/PVC/Pod trio, a CronJob with concurrencyPolicy, an Ingress with TLS.
  5. Run the PSI system check on the exam computer and fix the room and desk.
  6. The evening before, review the cheat sheet and keyword cues only.

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
Run one Pod on every node, such as a log collectorDaemonSet
Each replica needs a stable name (db-0) and its own diskStatefulSet with a headless Service and volumeClaimTemplates
Run a task once to completion and retry on failureJob
Run a task every night, never overlap runsCronJob with concurrencyPolicy: Forbid
Wait for a database before the app startsInit container
Ship the app's log file to a collector for the life of the PodSidecar: init container with restartPolicy: Always
The app talks to localhost and something else picks the real serverAmbassador pattern
Convert output into the format a monitoring system expectsAdapter pattern
Data must survive Pod deletionPersistentVolumeClaim
Scratch space shared between containers in one PodemptyDir

Revise from the cheat sheet

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

  • Design and build: images, workloads, Pods and volumes
  • Deployment: strategies, rolling updates, Helm and Kustomize
  • Observability: deprecations, probes, monitoring and debugging
  • Environment, configuration and security
  • Services and networking

Practise with the real exam's mix

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

See the course