A self-contained Kubernetes incident for a senior SRE pairing interview.
The candidate is dropped into a single-node cluster where the checkout
service is failing after a "recent deploy," and must investigate and mitigate.
| File | Purpose |
|---|---|
index.json |
Killercoda scenario metadata (wires intro/step/finish + the boot script). |
background.sh |
Runs invisibly on boot. This is where the incident is planted. |
intro.md |
First screen the candidate sees — the incident framing. |
step1.md |
The working terminal step with light orienting nudges. |
finish.md |
Closing screen. |
INTERVIEWER_GUIDE.md |
Private. Oracle script, expected path, scoring rubric, EKS follow-ups, difficulty knobs. Do not include in anything the candidate sees. |
Two faults, both from one kubectl apply:
- Readiness probe points at port
8080; app listens on5678→ no Ready pods → empty Service endpoints → outage. - Memory request sized to ~40% of the node → only ~2 of 4 replicas schedule;
the rest stay
Pending.
Full detail and scoring are in INTERVIEWER_GUIDE.md.
- Put this directory in a Git repo (e.g.
checkout-incident/at the root). - In Killercoda: Creators → Repository, add your repo name + branch, and register the Deploy Key under your GitHub repo's Settings → Deploy Keys, plus the webhook (Payload URL + Secret, content type JSON) under Settings → Webhooks.
- Push. Killercoda syncs on every push. Find it under Creators → Scenarios.
Authoring note: the schema is
details.intro/details.steps[]/details.finish, each pointing at a markdown file, with optionalbackground/foregroundscripts on intro and finish only. Backend image iskubernetes-kubeadm-1node(orkubernetes-kubeadm-1node-4GBfor more headroom). You can scaffold/validate structure withpip install killercoda-cli.
Boot the scenario, wait ~30s, then:
kubectl get pods -n shop # expect ~2 Running (0/1 READY), ~2 Pending
kubectl get endpoints -n shop # expect none
If all four pods pend, your node is too small — switch to the 4GB image or
lower the 40% factor in background.sh.