A real Kubernetes cluster per learner
The EduShell team · July 25, 2026 · 1 min read
You don't learn Kubernetes by reading. You learn it by deploying, breaking and fixing, on a cluster where you hold every right. The catch: giving each learner a real cluster is expensive, slow to provision, and dangerous the moment they share the same infrastructure.
The dilemma
Two classic options, both bad:
- A shared cluster with namespaces. Cheap, but the learner has no admin rights: they'll never touch a , a CRD, an admission webhook. They learn half of Kubernetes.
- A real cluster each. Faithful, but heavy: minutes of provisioning, a bill that climbs, and a teardown to manage after every session.
Our answer: a virtual cluster per learner
Each learner gets their own virtual cluster: a Kubernetes API server of their own, with its , its namespaces, its roles, its CRDs, a full control plane, isolated from everyone else's.
kubectl create deployment web --image=nginx
kubectl get pods -A
These commands run against THEIR cluster. They can create a , install an operator, wreck their own , without ever touching the neighbour's cluster or the platform.
Isolated, and disposable
The isolation is real: one learner's resources are invisible to the others. And because the cluster is virtual, it appears in moments and disappears at the end of the session, no leftovers, no manual cleanup.
What it unlocks
Labs a shared namespace forbids: cluster-wide RBAC, admission controllers, operators, CRDs, upgrades. In short, the real job of a Kubernetes administrator, not its watered-down version.
In short
A namespace teaches you to use Kubernetes. A cluster teaches you to run it. The virtual cluster gives you the second at the price of the first, and that's what finally makes a Kubernetes lab honest.
← All posts