vcluster Documentation

VCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster.

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy vcluster on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name vcluster --restart always loft-sh/vcluster:latest

1. Project Overview & Quickstart (loft-sh/vcluster)


What is vCluster?

vCluster creates Tenant Clusters โ€” fully isolated Kubernetes environments that run on top of a Control Plane Cluster or standalone on dedicated infrastructure or bare metal. Each tenant gets its own API server, CRDs, and RBAC, with a cluster experience indistinguishable from a dedicated Kubernetes cluster.

Built for production. Trusted in production. 40M+ Tenant Clusters deployed by teams at Adobe, CoreWeave, NVIDIA, Lintasarta, Atlan, Deloitte, and hundreds of AI clouds, AI factories, and Fortune 500 platform organizations.

CNCF Certified Kubernetes โ€” Distribution and Kubernetes AI Conformant โ€” every Tenant Cluster is upstream Kubernetes with no vendor lockโ€‘in, validated for portable AI/ML workloads (training, inference, agentic).

The public-cloud experience, on your own infrastructure. Give every team the Kubernetes they need โ€” with strict isolation, hardware-aware scheduling, and zero tenant sprawl โ€” whether you run one region or 100K GPUs.


๐Ÿš€ Quick Start

bash
# Install vCluster CLI
brew install loft-sh/tap/vcluster

# Create a Tenant Cluster
vcluster create my-vcluster --namespace team-x

# Use kubectl as usual โ€” you're now in your Tenant Cluster
kubectl get namespaces

Prerequisites: A running Kubernetes cluster and kubectl configured.

๐Ÿ‘‰ Full Quickstart Guide

๐Ÿณ Run Locally with Docker โ€” [vind](https://github.com/loft-sh/vind)

No Kubernetes cluster? Run vCluster directly on Docker with vind (vCluster in Docker) โ€” like kind, but with the full vCluster feature set (UI, sleep/resume, LoadBalancer, image cache):

bash
vcluster create my-vcluster --driver docker
kubectl get namespaces

๐ŸŽฎ Try in the Browser

๐ŸŽ vCluster Free Tier

Real usage, not a gated demo. Unlimited Tenant Clusters up to 64 CPUs / 32 GPUs, plus the full vCluster Platform UI โ€” for free. Get Started Free โ†’


๐Ÿ†• What's New

Version Feature Description
v0.34 Multi-Region Platform & Standalone Snapshots Active/active vCluster Platform across regions (Route 53 + RDS), Standalone snapshots (S3 / OCI / local), first-class template parameters
v0.33 Enterprise Reliability & Storage Automatic leaf-cert regeneration, Azure Blob snapshot destinations, workload-level sleep annotations
v0.32 Docker Driver & DRA Run vCluster on Docker, Dynamic Resource Allocation (DRA) for GPU workloads, in-place pod resizing
v0.31 Snapshots & Cross-Cluster APIs Expanded snapshot/restore lifecycle, PDBs for Tenant Cluster control planes, cross-cluster resource proxying
v0.30 vCluster VPN & Netris Integration Tailscale-powered overlay networking and automated hardware isolation via Netris
v0.27โ€“v0.29 Architecture Foundations Private Nodes (v0.27, CNI/CSI isolation), Auto Nodes (v0.28, Karpenter autoscaling), Standalone Mode (v0.29, no Control Plane Cluster โ€” dedicated infrastructure or bare metal)

๐Ÿ‘‰ Full Changelog


๐ŸŽฏ Use Cases

Use Case Description Learn More
AI Factory Run AI on-prem where your data and GPUs live. Give every team the GPU access they need without multiplying infrastructure. View โ†’
AI Cloud Providers Launch a hyperscaler-like Kubernetes experience for your GPU customers. Isolated, production-grade, in minutes. View โ†’
Internal GPU Platform Maximize GPU utilization without sacrificing isolation. Self-service Kubernetes for AI/ML teams. View โ†’
Bare Metal Kubernetes Run production Kubernetes on bare metal with zero VMs. Isolation without expensive virtualization overhead. View โ†’
Software Vendors Ship Kubernetes-native products. Each customer gets their own isolated Tenant Cluster. View โ†’
Environments & Cost Savings Consolidate clusters, pause idle workloads with sleep mode, and cut Kubernetes cost at scale. View โ†’

๐Ÿ—๏ธ Architectures

vCluster supports multiple deployment architectures. Each builds on the previous, offering progressively stronger isolation โ€” from dense shared infrastructure to fully standalone deployments on dedicated infrastructure or bare metal.

Architecture Comparison

Shared Nodes Dedicated Nodes Private Nodes Standalone
Control Plane Cluster Required Required Required Not Required
Node Isolation โŒ โœ… โœ… โœ…
CNI/CSI Isolation โŒ โŒ โœ… โœ…
Bare Metal Ready โ€” โ€” โœ… โœ…
Best For Dev/test, density Production tenants Compliance, GPU AI factories, edge

๐Ÿ‘‰ Full Architecture Guide

Minimal Configuration

๐Ÿ”น Shared Nodes โ€” Maximum density, minimum cost
Tenant Clusters share the Control Plane Cluster's nodes. Workloads run as regular pods in a namespace.

yaml
sync:
  fromHost:
    nodes:
      enabled: false  # Uses pseudo nodes

๐Ÿ”น Dedicated Nodes โ€” Isolated compute on labeled node pools
Tenant Clusters get their own set of labeled nodes on the Control Plane Cluster. Workloads are isolated but still managed by the Control Plane Cluster.

yaml
sync:
  fromHost:
    nodes:
      enabled: true
      selector:
        labels:
          tenant: my-tenant

๐Ÿ”น Private Nodes v0.27+ โ€” Full CNI/CSI isolation
External nodes join the Tenant Cluster directly with their own CNI, CSI, and networking stack. Complete workload isolation from the Control Plane Cluster.

yaml
privateNodes:
  enabled: true
controlPlane:
  service:
    spec:
      type: NodePort

๐Ÿ”น vCluster Standalone v0.29+ โ€” No Control Plane Cluster required
Run vCluster without any Control Plane Cluster. Deploy the Virtual Control Plane directly on bare metal or VMs. The highest level of isolation โ€” vCluster becomes the cluster.

yaml
controlPlane:
  standalone:
    enabled: true
    joinNode:
      enabled: true
privateNodes:
  enabled: true

โšก Auto Nodes v0.28+ โ€” Karpenter-powered dynamic autoscaling
Automatically provision and deprovision private nodes based on workload demand. Works across public cloud, private cloud, hybrid, and bare metal environments.

yaml
autoNodes:
  enabled: true
  nodeProvider: 
privateNodes:
  enabled: true

โœจ Key Features

Feature Description
๐ŸŽ›๏ธ Isolated Virtual Control Plane Each Tenant Cluster gets its own API server, controller manager, and data store โ€” complete Kubernetes API isolation
๐Ÿ”— Shared Platform Stack (Shared / Dedicated Nodes) Leverage the Control Plane Cluster's CNI, CSI, ingress, and other infrastructure โ€” no duplicate platform components
๐Ÿ”’ Strong Tenant Isolation Tenants get admin access inside their Tenant Cluster while having minimal permissions on the Control Plane Cluster
๐Ÿ”„ Resource Syncing (Shared / Dedicated Nodes) Bidirectional sync of any Kubernetes resource โ€” pods, services, secrets, configmaps, CRDs, and more
๐Ÿ’ค Sleep Mode Pause inactive Tenant Clusters to save resources. Instant wake when needed
๐Ÿ–ฅ๏ธ Standalone Deployment Run without a Control Plane Cluster on dedicated infrastructure or bare metal โ€” purpose-built for AI factories and on-prem GPU fleets
๐Ÿงฉ Integrations Native support for cert-manager, external-secrets, KubeVirt, Istio, and metrics-server (host-side integrations apply in Shared / Dedicated Nodes modes)
๐Ÿ“Š High Availability Multiple replicas with leader election. Embedded etcd or external databases (PostgreSQL, MySQL, RDS)

Shared Platform Stack, Resource Syncing, and host-cluster integrations apply only in Shared and Dedicated Nodes modes, where the Tenant Cluster shares the Control Plane Cluster's CNI, CSI, and platform stack. Private Nodes and Standalone deployments bring their own CNI, CSI, and platform components.


๐ŸŒ The vCluster Platform

vCluster is the foundation of a broader platform for running production Kubernetes and AI infrastructure on your own hardware โ€” from a single rack to 100K-GPU supercomputers.

Product What it does
vCluster Tenant Clusters โ€” Virtual Control Planes with API, data, and (optionally) network isolation
vNode Runtime-level isolation. Kernel-enforced boundaries (seccomp, cgroups, namespaces, AppArmor) without VM overhead
vMetal Zero-touch bare metal provisioning for GPU fleets. Turns GPU racks into a cloud platform
Netris (integration) Hardware-enforced network isolation via programmatic VLANs, VRFs, and ACLs

Together these provide a complete foundation for AI factories โ€” certified Kubernetes stacks, isolated Tenant Clusters, runtime workload sandboxing, and GPU infrastructure operations โ€” the same pattern used to run production AI on hundreds of AI clouds and Fortune 500 on-prem platforms.


๐Ÿข Trusted By

Atlan100 โ†’ 1 clusters Aussie Broadband99% faster provisioning CoreWeaveGPU cloud at scale
Lintasarta170+ Tenant Clusters in prod Fortune 500 Insurance70% reduction in Kubernetes cost Scanmetrix99% faster deployments
DeloitteEnterprise K8s platform Ada10x Developer Productivity Trade Connectors50% reduction in K8s ops cost

Also used by: NVIDIA, ABBYY, Precisely, Shipwire, and many more โ€” with 50+ GPU clouds and Fortune 500s running vCluster in production.

๐Ÿ‘‰ View All Case Studies


๐Ÿ“š Learn More

๐ŸŽค Conference Talks

Event Speaker Title Link
KubeCon NA 2025 (Keynote) Lukas Gentele Autoscaling GPU Clusters Anywhere โ€” Hyperscalers, Neoclouds & Baremetal Watch
Platform Engineering Day NA 2025 (Keynote) Saiyam Pathak AI-Ready Platforms: Scaling Teams Without Scaling Costs Watch
Rejekts NA 2025 Hrittik Roy, Saiyam Pathak Beyond the Default Scheduler: Navigating GPU MultiTenancy in AI Era Watch
KubeCon EU 2025 Paco Xu, Saiyam Pathak A Huge Cluster or Multi-Clusters? Identifying the Bottleneck Watch
HashiConf 2025 Scott McAllister GPU sharing done right: Secrets, security, and scaling with Vault and vCluster Watch
FOSDEM 2025 Hrittik Roy, Saiyam Pathak Accelerating CI Pipelines: Rapid Kubernetes Testing with vCluster Watch
KubeCon India 2024 (Keynote) Saiyam Pathak From Outage To Observability: Lessons From a Kubernetes Meltdown Watch
CNCF Book Club 2024 Marc Boorshtein Kubernetes - An Enterprise Guide (vCluster) Watch
KCD NYC 2024 Lukas Gentele Tenant Autonomy & Isolation In Multi-Tenant Kubernetes Clusters Watch
KubeCon EU 2023 Ilia Medvedev, Kostis Kapelonis How We Securely Scaled Multi-Tenancy with VCluster, Crossplane, and Argo CD Watch
KubeCon NA 2022 Joseph Sandoval, Dan Garfield How Adobe Planned For Scale With Argo CD, Cluster API, And VCluster Watch
KubeCon NA 2022 Whitney Lee, Mauricio Salatino What a RUSH! Let's Deploy Straight to Production! Watch
TGI Kubernetes 2022 TGI TGI Kubernetes 188: vCluster Watch
Mirantis Tech Talks 2022 Mirantis Multi-tenancy & Isolation using Virtual Clusters (vCluster) in K8s Watch
Solo Webinar 2022 Rich Burroughs, Fabian Keller Speed your Istio development environment with vCluster Watch
KubeCon NA 2021 Lukas Gentele Beyond Namespaces: Virtual Clusters are the Future of Multi-Tenancy Watch

๐ŸŽฌ Community Voice

Channel Speaker Title Link
TeKanAid 2024 TeKanAid Getting Started with vCluster: Build Your IDP with Backstage, Crossplane, and ArgoCD Watch
Rawkode 2021 David McKay, Lukas Gentele Hands on Introduction to vCluster Watch
Kubesimplify 2021 Saiyam Pathak, Lukas Gentele Let's Learn vCluster Watch
TechWorld with Nana 2021 Nana Build your Self-Service Kubernetes Platform with Virtual Clusters Watch
DevOps Toolkit 2021 Viktor Farcic How To Create Virtual Kubernetes Clusters Watch

๐Ÿ‘‰ YouTube Channel โ€ข Blog


๐Ÿค Contributing

We welcome contributions! Check out our Contributing Guide to get started.


๐Ÿค Connect with us


๐Ÿ“œ License

vCluster is licensed under the Apache 2.0 License.


2. Official Technical Reference & Guides (loft-sh/vcluster-docs)

vCluster resources

Contribute to the docs

Contributions from all users are encouraged.

Develop locally

  1. Run npm install

    This will initially install all necessary dependencies.

  2. Run npm run start

    This will continuously watch changes, build a development version and serve it locally.

Other ways to contribute

The docs site uses Docusaurus. See
Contribute to the vCluster docs for how to build the site locally.

Content locations:

  • vcluster: vCluster content
  • platform: vCluster Platform content

Shared content uses two folder conventions (goal โ€” not yet fully enforced):

  • _partials/: intended for auto-generated content. Do not hand-edit generated files โ€” changes will be overwritten on the next generation run.
  • _fragments/: manually written content shared across multiple pages. Safe to edit directly.

In practice, most _partials/ content (e.g. all of platform/_partials/) is hand-maintained and safe to edit. The directories that are actually auto-generated are:

  • vcluster/_partials/config/ โ€” vCluster config reference, generated by hack/vcluster/partials/main.go
  • platform/api/_partials/resources/ โ€” Platform API reference, generated by hack/platform/partials/main.go
  • vcluster_versioned_docs/version-X.Y.Z/cli/ โ€” CLI command docs, generated by hack/vcluster-cli/main.go

When in doubt, check git log on the file before editing.

Generate new vCluster version

bash
npm run docusaurus docs:version:vcluster 0.22.0

Generate new Platform version

bash
npm run docusaurus docs:version:platform 4.3.0

Generate vCluster partials

bash
go run hack/vcluster/partials/main.go

Generate platform partials

bash
go run hack/platform/partials/main.go

Generate CLI documentation

bash
go run hack/vcluster-cli/main.go

See the CLI generator README for options.

Wrap glossary terms

To automatically wrap glossary terms in MDX files with <GlossaryTerm> components:

bash
# Wrap terms in a single file
npm run wrap-glossary vcluster/deploy/basics.mdx

# Wrap terms in all files in a directory (recursive)
npm run wrap-glossary vcluster/deploy/

# Or use the script directly
node scripts/wrap-glossary-terms.js platform/understand/

The script will:

  • Only wrap terms that exist in src/data/glossary.yaml
  • Only wrap the first occurrence of each term in a document
  • Respect the glossary type setting (vcluster, platform, or both)
  • Skip terms in front matter, code blocks, links, and HTML/JSX tags
  • Preserve the original case of matched terms