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.
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 localhost. 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.
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.
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!
No responses yet.