Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CKAD 2026 — 884 practice questions

52 exam sessions, 17 questions each, for a real Kubernetes cluster. Every exam builds its own environment, grades itself and cleans up after itself. Two of them (mock-killer-a, mock-killer-b) reproduce the scenarios of the killer.sh simulator sessions.


When something does not work

./doctor.sh                 # everything it can check
./doctor.sh mock-killer-a   # plus that exam's instances

It changes nothing, always exits 0, and prints one line per fact: platform and bash version, which tools are on PATH, whether the docker daemon answers and what kind it is, the kubectl context and whether the API server replies, which exam components are installed, which ports are published, and the state of an exam's instances. The BAD lines are the ones to fix. Paste the whole output into a bug report - it answers every question worth asking about a broken setup.


First-time setup (once, ~10 minutes)

Runs on Linux, macOS and Windows. On Windows use Git Bash or WSL2 - not cmd or PowerShell; the scripts are bash. macOS is supported with the /bin/bash Apple ships (3.2) and the BSD userland, so there is nothing to install from Homebrew. What you do need is Docker (Docker Desktop on macOS and Windows, the engine on Linux), kubectl, and ssh.

The exams talk to a real cluster and log you into real machines, so three things get installed once:

cd _bootstrap && ./install.sh && ./status.sh && cd ..   # cluster components
cd _instances && ./build.sh && cd ..                    # the ssh instance image
cd _examui    && npm install  && cd ..                  # the exam console

_bootstrap/install.sh adds an ingress-nginx controller (NodePort 30080), metrics-server and a local image registry (NodePort 30500) to your cluster. Without them the Ingress, HPA and image questions are graded on their YAML alone; with them they are graded by behaviour — a real curl through the controller, real HPA metrics, a real image pull. ./status.sh shows what your cluster has.

_instances/build.sh builds ckad-instance:1, the container you land in when you type ssh ckadXXXX. It carries kubectl, helm, vim, curl, jq and the rest, mounts only that instance's course/<n> directories, and can not reach the exam directory — so the solutions stay out of reach, like in the real exam.

NetworkPolicies are the one thing a stock Docker Desktop or kind cluster cannot enforce. Those questions are graded on the manifest and say so in the question text. _bootstrap/kind-calico.sh creates a separate cluster that does enforce them. See _bootstrap/README.md.

Platform: everything here targets Linux. On a Windows machine run it inside WSL2 (Ubuntu) - install Docker Desktop with the WSL2 integration switched on, and docker and kubectl are available inside WSL against the same cluster. The real CKAD exam terminal is Linux too, so practising in a Linux shell is exactly the muscle memory you want.

curl localhost:30080 gets nothing? Docker Desktop's Kubernetes is a kind cluster under the hood, and a kind node only publishes the NodePorts it was created with. install.sh notices and starts a small forwarder per port (_bootstrap/portmap.sh), so localhost works anyway. If the port it wanted was taken by one of your own Services it takes the next free one and says so — the exams read the port from the cluster, so nothing needs adjusting.


Start here

There are two ways to work through an exam. The browser console is the one you want — it looks and behaves like the real Linux Foundation exam UI.

1. The exam console in your browser (recommended)

cd _examui
npm run dev

Then open http://localhost:3000 and pick an exam.

If your cluster needs a specific context, set it before starting:

export KUBECTL="kubectl --context=docker-desktop"
npm run dev

You get the question panel on the left, a real terminal on the right, a 120 minute clock, question flagging and a notepad. Each question names an instance: you type ssh ckadXXXX, solve the task, and type exit — logging out is what submits it for grading.

The console walks you through everything else: Prepare environment runs the exam's setup, Start exam begins the clock, and the results page shows your score with the full walkthrough.

Full details, keyboard shortcuts and configuration: _examui/README.md.

2. Plain shell scripts, without the browser

Every exam also works standalone:

cd exam-01-voyager
./setup.sh            # builds the exam environment (1-2 min)
cat questions.md      # solve the 17 questions with kubectl
./verify.sh           # automatic grading, 66% = pass
./cleanup.sh          # remove every namespace and object of this exam

solutions.md has a full walkthrough per question; solve.sh applies the complete reference solution if you want to see a finished environment.


What you need

  • a Kubernetes cluster and kubectl (kind, minikube, k3s, Docker Desktop …)
  • Node 20+ for the browser console
  • a bash — Linux and macOS have one; on Windows the console finds Git Bash (C:\Program Files\Git\bin\bash.exe) or falls back to WSL
  • Docker, for the instance containers you ssh into — without it the console falls back to a local shell per instance and warns you, and on Windows/macOS the exam directory is then only a cd .. away
  • an ssh client — Windows 10+, macOS and Linux all ship one
  • helm on the PATH for the Helm questions
  • strongly recommended: _bootstrap/install.sh — it installs a real ingress-nginx (NodePort 30080), metrics-server and an image registry (NodePort 30500) into your cluster, which is what makes the Ingress, HPA and image questions gradable by behaviour instead of only by their YAML. _bootstrap/status.sh shows what your cluster supports; _bootstrap/README.md explains what each component changes, including the one thing that cannot be retrofitted (NetworkPolicy enforcement — see _bootstrap/kind-calico.sh). Without it every question is still graded, structurally, and verify.sh marks the behavioural checks as skipped.

Rules of the game

  • Run one exam at a time. Different exams reuse the same namespace names.
  • File paths in the questions are relative to the exam directory, e.g. ./course/3/job.yaml. setup.sh creates that tree.
  • Namespaces are named after bodies of the solar system.
  • 120 minutes, pass mark 66% — like the real exam.

Topics

  • Secrets & Environment Variables — 69 questions across all exams
  • Ingress — 60 questions across all exams
  • NetworkPolicy — 54 questions across all exams
  • Resource Requests & Limits — 60 questions across all exams
  • Docker Image Tasks — 61 questions across all exams
  • Canary Deployments — 56 questions across all exams
  • Service Selectors — 64 questions across all exams
  • CronJobs — 58 questions across all exams
  • SecurityContext — 64 questions across all exams
  • RBAC — 58 questions across all exams
  • Deployment Rollbacks — 52 questions across all exams
  • Deprecated API Fixes — 52 questions across all exams
  • Probes — 22 questions across all exams
  • Storage, PV & PVC — 17 questions across all exams
  • Sidecar & Init Containers — 13 questions across all exams
  • Jobs — 14 questions across all exams
  • Labels & Annotations — 18 questions across all exams
  • Pods & kubectl Basics — 16 questions across all exams
  • Helm — 20 questions across all exams
  • Kustomize — 19 questions across all exams
  • HorizontalPodAutoscaler — 13 questions across all exams

Index

# Directory Question topics
01 exam-01-voyager Resource Requests & Limits, Docker Image Tasks, RBAC, CronJobs, Ingress, SecurityContext ...
02 exam-02-apollo Resource Requests & Limits, SecurityContext, Secrets & Environment Variables, Service Selectors, Ingress, Deprecated API Fixes ...
03 exam-03-cassini Service Selectors, SecurityContext, Deprecated API Fixes, NetworkPolicy, Secrets & Environment Variables, Canary Deployments ...
04 exam-04-galileo SecurityContext, Secrets & Environment Variables, Service Selectors, CronJobs, Deprecated API Fixes, Docker Image Tasks ...
05 exam-05-juno Deprecated API Fixes, CronJobs, Ingress, NetworkPolicy, Deployment Rollbacks, RBAC ...
06 exam-06-viking NetworkPolicy, RBAC, CronJobs, Deployment Rollbacks, Service Selectors, Resource Requests & Limits ...
07 exam-07-pioneer Service Selectors, Deprecated API Fixes, Secrets & Environment Variables, Resource Requests & Limits, RBAC, CronJobs ...
08 exam-08-magellan Secrets & Environment Variables, CronJobs, Canary Deployments, SecurityContext, Ingress, Service Selectors ...
09 exam-09-curiosity RBAC, NetworkPolicy, Docker Image Tasks, Resource Requests & Limits, Deployment Rollbacks, SecurityContext ...
10 exam-10-perseverance Ingress, Deployment Rollbacks, Secrets & Environment Variables, RBAC, CronJobs, Resource Requests & Limits ...
11 exam-11-opportunity Secrets & Environment Variables, Ingress, CronJobs, Resource Requests & Limits, Docker Image Tasks, Service Selectors ...
12 exam-12-spirit Secrets & Environment Variables, Docker Image Tasks, RBAC, Resource Requests & Limits, Deployment Rollbacks, Ingress ...
13 exam-13-hubble Docker Image Tasks, Canary Deployments, CronJobs, Deployment Rollbacks, Secrets & Environment Variables, Service Selectors ...
14 exam-14-kepler SecurityContext, Service Selectors, Ingress, Canary Deployments, Secrets & Environment Variables, NetworkPolicy ...
15 exam-15-artemis Canary Deployments, Resource Requests & Limits, Service Selectors, RBAC, Deprecated API Fixes, Secrets & Environment Variables ...
16 exam-16-orion Docker Image Tasks, Service Selectors, Secrets & Environment Variables, Deprecated API Fixes, RBAC, Canary Deployments ...
17 exam-17-soyuz Canary Deployments, Ingress, CronJobs, NetworkPolicy, Deployment Rollbacks, Docker Image Tasks ...
18 exam-18-dragon NetworkPolicy, Secrets & Environment Variables, SecurityContext, Deployment Rollbacks, Canary Deployments, Deprecated API Fixes ...
19 exam-19-ariane Deployment Rollbacks, Canary Deployments, SecurityContext, Deprecated API Fixes, Resource Requests & Limits, Secrets & Environment Variables ...
20 exam-20-rosetta RBAC, SecurityContext, CronJobs, Deployment Rollbacks, Ingress, Service Selectors ...
21 exam-21-philae RBAC, SecurityContext, Secrets & Environment Variables, Ingress, NetworkPolicy, Canary Deployments ...
22 exam-22-horizons NetworkPolicy, Resource Requests & Limits, Service Selectors, Secrets & Environment Variables, SecurityContext, Canary Deployments ...
23 exam-23-dawn Resource Requests & Limits, Secrets & Environment Variables, Deployment Rollbacks, NetworkPolicy, Deprecated API Fixes, Ingress ...
24 exam-24-messenger Service Selectors, SecurityContext, Docker Image Tasks, RBAC, Deprecated API Fixes, NetworkPolicy ...
25 exam-25-ulysses Ingress, Docker Image Tasks, Service Selectors, RBAC, Resource Requests & Limits, Canary Deployments ...
26 exam-26-huygens NetworkPolicy, Docker Image Tasks, Deployment Rollbacks, Ingress, SecurityContext, Secrets & Environment Variables ...
27 exam-27-sputnik CronJobs, Docker Image Tasks, Service Selectors, Resource Requests & Limits, NetworkPolicy, Secrets & Environment Variables ...
28 exam-28-clementine Canary Deployments, Docker Image Tasks, Resource Requests & Limits, NetworkPolicy, Deployment Rollbacks, SecurityContext ...
29 exam-29-chandrayaan CronJobs, Service Selectors, Docker Image Tasks, Secrets & Environment Variables, SecurityContext, Ingress ...
30 exam-30-akatsuki Resource Requests & Limits, Service Selectors, Docker Image Tasks, Ingress, Deprecated API Fixes, NetworkPolicy ...
31 exam-31-gaia Pods & kubectl Basics, Deployment Rollbacks, Service Selectors, Labels & Annotations, HorizontalPodAutoscaler, Probes ...
32 exam-32-juice Labels & Annotations, HorizontalPodAutoscaler, CronJobs, Helm, SecurityContext, Service Selectors ...
33 exam-33-lucy SecurityContext, HorizontalPodAutoscaler, Canary Deployments, Sidecar & Init Containers, Resource Requests & Limits, Pods & kubectl Basics ...
34 exam-34-psyche Probes, Labels & Annotations, Storage, PV & PVC, HorizontalPodAutoscaler, Canary Deployments, NetworkPolicy ...
35 exam-35-europa-clipper Deprecated API Fixes, SecurityContext, Probes, Kustomize, RBAC, HorizontalPodAutoscaler ...
36 exam-36-dart Service Selectors, CronJobs, RBAC, Resource Requests & Limits, Sidecar & Init Containers, Canary Deployments ...
37 exam-37-osiris SecurityContext, Secrets & Environment Variables, Storage, PV & PVC, Probes, RBAC, Service Selectors ...
38 exam-38-hayabusa Deployment Rollbacks, Secrets & Environment Variables, Resource Requests & Limits, SecurityContext, Canary Deployments, NetworkPolicy ...
39 exam-39-chang-e Pods & kubectl Basics, HorizontalPodAutoscaler, RBAC, CronJobs, Docker Image Tasks, Jobs ...
40 exam-40-tianwen Helm, Resource Requests & Limits, Labels & Annotations, Secrets & Environment Variables, Deployment Rollbacks, Storage, PV & PVC ...
41 exam-41-solar-orbiter Jobs, CronJobs, Pods & kubectl Basics, Deprecated API Fixes, Ingress, Canary Deployments ...
42 exam-42-parker RBAC, Storage, PV & PVC, Secrets & Environment Variables, Deployment Rollbacks, Resource Requests & Limits, SecurityContext ...
43 exam-43-webb Jobs, Sidecar & Init Containers, Canary Deployments, Docker Image Tasks, Probes, Kustomize ...
44 exam-44-euclid Helm, Canary Deployments, Service Selectors, Storage, PV & PVC, Labels & Annotations, Secrets & Environment Variables ...
45 exam-45-cheops Sidecar & Init Containers, HorizontalPodAutoscaler, Pods & kubectl Basics, Jobs, NetworkPolicy, Deprecated API Fixes ...
46 exam-46-plato Service Selectors, SecurityContext, Deployment Rollbacks, Storage, PV & PVC, Ingress, HorizontalPodAutoscaler ...
47 exam-47-ariel-esa Ingress, Labels & Annotations, Resource Requests & Limits, CronJobs, Deprecated API Fixes, SecurityContext ...
48 exam-48-dragonfly Secrets & Environment Variables, Labels & Annotations, Deployment Rollbacks, Canary Deployments, Helm, Kustomize ...
49 exam-49-vera Kustomize, Jobs, Resource Requests & Limits, Pods & kubectl Basics, Docker Image Tasks, RBAC ...
50 exam-50-nancy Resource Requests & Limits, RBAC, Probes, SecurityContext, Secrets & Environment Variables, Jobs ...
-- mock-killer-a fixed simulator reproduction
-- mock-killer-b fixed simulator reproduction

Regenerating

_generator/ holds the generator that produced all of this. A different seed reshuffles every exam out of the same question bank:

cd _generator && python3 -m ckadgen.build ../out

About

CKA(D/S) Practice Exams

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages