Standalone Quick Start
The first problem is always the same. To run vCluster, you need a Kubernetes cluster. But getting a Kubernetes cluster onto bare metal normally requires another tool first. vCluster Standalone breaks this loop. It installs a complete Kubernetes control plane directly on a Linux machine as a binary, with no existing distribution required.
This guide takes you from a bare Linux machine to a fully functional Kubernetes cluster that you can go on to use as a control plane cluster in about two minutes. No Helm, no CLI, no existing Kubernetes required.
Prerequisites​
- A Linux machine (bare metal or VM) meeting the node requirements
- Ubuntu 22.04 or 24.04 recommended
- Root access required
- Outbound internet access for image pulls
- The machine must be reachable from your local workstation (SSH access)
- Port 8443 on the machine must be open to your workstation for API access
- Install kubectl on your local workstation
Install vCluster Standalone​
Run these commands on the control plane machine as root.
Switch to root.
sudo su -Run the installer.
Modify the following with your specific values to generate a copyable command:curl -sfL https://github.com/loft-sh/vcluster/releases/download/v0.37.3/install-standalone.sh \| sh -s -- --vcluster-name standalonenotevCluster deploys Kubernetes v1.36.0 by default. To use a different version, set
controlPlane.distro.k8s.image.tagin yourvcluster.yaml.The installer downloads Kubernetes binaries, configures the control plane, and writes a kubeconfig to
/var/lib/vcluster/kubeconfig.yaml. Installation takes about 2 minutes.Verify the control plane node is ready.
kubectl get nodesOutput is similar to:
NAME STATUS ROLES AGE VERSIONvcluster-standalone Ready control-plane,master 88s v1.36.0
Your machine is now a single-node Kubernetes cluster. This is the control plane cluster. Worker nodes join separately as private nodes when you provision clusters.
Access the cluster from your workstation​
The kubeconfig file is stored at /var/lib/vcluster/kubeconfig.yaml on the control plane node. Copy the file to your workstation and update the cluster endpoint.
On the control plane node, display the kubeconfig.
cat /var/lib/vcluster/kubeconfig.yamlSave the output to a separate file on your workstation, such as
~/.kube/standalone.yaml, to avoid overwriting your existing configuration.Set the
KUBECONFIGenvironment variable to use the new file in this session.export KUBECONFIG=~/.kube/standalone.yamlIn the kubeconfig, update the
serverfield, which defaults tohttps://localhost:8443. Replace<YOUR_MACHINE_IP>with the public IP address or DNS name of the control plane machine.server: https://<YOUR_MACHINE_IP>:8443The API server certificate covers the machine's primary IP address and hostname. If you connect through an address that isn't assigned to the machine, such as a NAT public IP or a DNS name, add it to the certificate. Otherwise
kubectlfails with a TLS error. On the control plane node, add the address tocontrolPlane.proxy.extraSANsin/etc/vcluster/vcluster.yaml, creating the file if it doesn't exist./etc/vcluster/vcluster.yamlcontrolPlane:proxy:extraSANs:- <YOUR_MACHINE_IP>Then restart vCluster to regenerate the certificate.
systemctl restart vclusterVerify access from your workstation.
kubectl get nodes
What you have now​
- A bare metal or VM-based Kubernetes cluster running as a vCluster Standalone instance
- A control plane cluster ready to run clusters and vCluster Platform
Next steps​
- Install vCluster Platform. Add the Platform management UI to this cluster for cluster provisioning, access controls, and node automation.
- High availability. Add control plane nodes for production resilience.
- Building a GPU cloud platform. End-to-end architecture for AI cloud deployments.
See Build for Production to find the path that matches what you're building.