EduShell
kubernetesisolationarchitecture

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.

bash
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
A real Kubernetes cluster per learner · EduShell