What it is¶
A vCluster is a complete Kubernetes control plane (API server, controller manager, and a backing store) running as pods inside one namespace of a host cluster. Users get their own cluster, with their own CRDs, namespaces, and RBAC, while the actual workloads are synced down to and scheduled on the host's nodes.
It suits:
- Per-team or per-developer clusters without paying for real ones
- Disposable test clusters in CI
- Testing CRDs or operators that would conflict with something cluster-wide on the host
Basic lifecycle¶
Install the CLI from the releases page, then:
vcluster create my-vcluster --namespace team-x # creates and connects (switches kube context)
kubectl get namespaces # now talking to the virtual cluster
vcluster disconnect # back to the host context
vcluster list
vcluster connect my-vcluster --namespace team-x
vcluster delete my-vcluster --namespace team-x
From the host cluster's point of view, everything lives in team-x. Running kubectl get pods -n team-x on the host shows the vCluster control plane plus the synced workload pods, with names rewritten to avoid collisions.