vcluster lets you create fully functional but virtual Kubernetes clusters. Each vcluster runs inside a namespace of another Kubernetes cluster. Using vcluster is much cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation compared to regular namespaces.
Website • Quickstart • Documentation • Blog • Twitter • Slack
Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
Why Virtual Kubernetes Clusters?Learn more on www.vcluster.com.
Learn more in the documentation.
⭐️ Do you like vcluster? Support the project with a star ⭐️
Features
Quick Start (~ 1 minute)
To learn more about vcluster, open the full getting started guide.
VCluster has a hard dependency on helm
, if it is not installed on your machine, you can install it beforehand or let vCluster install it for you.
Use one of the following commands to download the vcluster CLI binary from GitHub:
Mac (Intel/AMD)
curl -L -o vcluster "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-darwin-amd64" && sudo install -c -m 0755 vcluster /usr/local/bin
Mac (Silicon/ARM)
curl -L -o vcluster "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-darwin-arm64" && sudo install -c -m 0755 vcluster /usr/local/bin
Linux (AMD)
curl -L -o vcluster "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-linux-amd64" && sudo install -c -m 0755 vcluster /usr/local/bin
Linux (ARM)
curl -L -o vcluster "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-linux-arm64" && sudo install -c -m 0755 vcluster /usr/local/bin
Windows (Powershell)
md -Force "$Env:APPDATA\vcluster"; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls,Tls11,Tls12'; Invoke-WebRequest -URI "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-windows-amd64.exe" -o $Env:APPDATA\vcluster\vcluster.exe; $env:Path += ";" + $Env:APPDATA + "\vcluster"; [Environment]::SetEnvironmentVariable("Path", $env:Path, [System.EnvironmentVariableTarget]::User);
If you get the error that Windows cannot find vcluster after installing it, you will need to restart your computer, so that the changes to the
PATH
variable will be applied.
Alternatively, you can download the binary for your platform from the GitHub Releases page and add this binary to your PATH.
vcluster create my-vcluster
vcluster create my-vcluster --expose
vcluster create my-vcluster --isolate
Take a look at the vcluster docs to see how to deploy a vcluster using Helm or Kubectl instead.
Run in a terminal:
# Run any kubectl, helm, etc. command in your vcluster kubectl get namespace kubectl get pods -n kube-system kubectl create namespace demo-nginx kubectl create deployment nginx-deployment -n demo-nginx --image=nginx kubectl get pods -n demo-nginx
vcluster delete my-vcluster
Alternatively, you could also delete the host-namespace using kubectl.
Architecture ContributingThank you for your interest in contributing! Please refer to CONTRIBUTING.md for guidance.
This project is open-source and licensed under Apache 2.0, so you can use it in any private or commercial projects.
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.