vCluster creates fully functional Kubernetes clusters that run as Pods inside another Kubernetes cluster. Each virtual cluster has its own API server, controller manager, and data store, so tenants see their own dedicated cluster, can install CRDs, and can create cluster-scoped resources like namespaces, without needing cluster-admin on the host.
By default vCluster runs k3s as the virtual control plane (k8s and k0s are also supported) and stores state in SQLite, Postgres, or an embedded etcd. It does not run its own kubelets. Instead, a syncer translates workloads from the virtual cluster into real Pods on the host cluster, rewriting namespaces and ownership so multiple vClusters can coexist safely. Services, endpoints, and persistent volume claims are mapped through in the same way.
Compared to namespace-based multi-tenancy, vCluster gives tenants meaningful API-level isolation; compared to running separate real clusters, it is dramatically cheaper. It is maintained by Loft Labs and widely used for preview environments, per-team dev clusters, and CI.