📖 Read-only preview — lessons, diagrams, and quizzes only. The hands-on labs, live grading, and progress tracking require running the real course locally against a Kubernetes cluster.Run it locally →

Extras

Mock Exam (CKA-style)

10 tasks, 45 points, 60 minutes, graded against a real cluster. This preview shows the task list — the timer, grading, and cluster setup only run in the real local course.

Task 14 pts · Module 2

Create a Pod named `exam-pod-1` in namespace `mock-exam` using image `nginx:1.27`, with the label `tier=frontend`.

Task 24 pts · Module 3

Create a Deployment named `exam-web` in namespace `mock-exam` running 3 replicas of `nginx:1.27`.

Task 33 pts · Module 3

A Deployment named `exam-api` already exists in `mock-exam` with 2 replicas. Scale it to 4 replicas.

Task 45 pts · Module 4

A Service named `exam-svc` in `mock-exam` has a selector that doesn't match any pod. Fix it so it has ready endpoints pointing at the pods labeled `app=exam-api`.

Task 55 pts · Module 5

Create a ConfigMap named `exam-config` in `mock-exam` with key `LOG_LEVEL=debug`. Create a Pod named `exam-config-pod` using image `busybox:1.36` (command: sleep 3600) that consumes `LOG_LEVEL` as an environment variable sourced from that ConfigMap.

Task 65 pts · Module 6

A Deployment named `exam-probe` in `mock-exam` has a readiness probe pointing at the wrong port, so its pods never become Ready. Fix it.

Task 75 pts · Module 7

A PersistentVolumeClaim named `exam-pvc` in `mock-exam` is stuck Pending because of a bad `storageClassName`. Fix it, then create any Pod that mounts it — this StorageClass uses WaitForFirstConsumer binding, so it won't bind until something actually claims to use it.

Task 84 pts · Module 9

Create a CronJob named `exam-cron` in `mock-exam` that runs every minute (`*/1 * * * *`), using image `busybox:1.36`, running the command `echo hello`.

Task 95 pts · Module 10

Taint node `k8s-course-worker2` with `exam=true:NoSchedule`. Then create a Pod named `exam-toleration-pod` in `mock-exam` using image `busybox:1.36` (command: sleep 3600) with a toleration for that taint, and confirm it actually lands on `k8s-course-worker2`.

Task 105 pts · Module 11

Create a ServiceAccount named `exam-reader` in `mock-exam`. Grant it permission to get, list, and watch Pods in that namespace only (not cluster-wide), via a Role and RoleBinding.