At some point while learning Kubernetes, I started looking for a place to actually practice — not follow along with a tutorial, but get my hands on a real cluster, misconfigure something, and figure out why it broke. Ideally something I could run locally, with enough scenarios to keep me busy for a while. Free and open-source, obviously.
I looked around for a while. Cloud playgrounds that cut you off after an hour or less, paid platforms, a few GitHub repos with a bunch of shell scripts for practice. Nothing that had real depth and was also free and self-hosted. Especially nothing that'd be useful for people working towards CNCF certifications like CKA, CKAD, or CKS and seeking serious hands-on prep without paying for yet another platform.
So I built my own: KubeKosh.
Spinning it up
docker run -itd --name kubekosh --privileged -p 7554:80 zeborg/kubekosh:latest
Wait for about 15 seconds for the cluster and playground to initialize, then open http://localhost:7554. You'll have a live K3s cluster, a browser-based terminal, 85+ scenarios, and exam mode with detailed reports ready to go — no account, no cloud, no kubeconfig juggling.
The --privileged flag is required because K3s needs to manage kernel namespaces, cgroups, networking, and more inside the container, to get a real cluster playground in a single docker run.
How scenarios work — and the part that took longer than expected
Each scenario is a single JSON file covering setup state, the problem description, and validation logic. Clean and simple in theory. In practice, getting the validation right took a few embarrassing iterations.
I stopped and wrote a proper schema — not because the lab needed it to run, but so that anyone could pick up the repo and add a new scenario in a couple of minutes without becoming an archaeologist. It's documented in the repo, and it works. Adding scenarios is genuinely the most valuable contribution anyone could make to the project.
The 85+ scenarios cover a range of topics you'd encounter in real clusters — and in the CKA, CKAD, and CKS exams:
- Pod scheduling, affinity, taints & tolerations
- RBAC, service accounts, security contexts
- Network policies and ingress
- Persistent volumes and storage classes
- Deployments, rollouts, rollbacks
- Resource limits, quotas, LimitRanges
- Cluster troubleshooting
- and more...
There's also an exam mode with a timer if you want to simulate the pressure of the real certification environment. More useful than it sounds once you try it.
Why open-source it
The gap I ran into isn't unique to me. If you've spent time looking for a free, self-hosted Kubernetes lab with real scenario depth and came up empty — this is for you.
85+ scenarios is a decent start, but it's not enough. The most valuable contributions would be new scenarios based on real problems: the RBAC edge case that bit you in production, the network policy that silently dropped traffic, the PVC that wouldn't bind and took an hour to debug. That kind of thing. If you've lived through it, it's a scenario worth adding.
Full source, screenshots, and documentation at 👉 github.com/zeborg/kubekosh
If something's broken or you have feature ideas, open an issue. And if this is exactly what you've been looking for — hope it helps!


Top comments (0)