This guide will walk you through setting up and using vind (vCluster in Docker) for the first time.
The simplest way to create a cluster:
vcluster create my-first-clusterThis will:
- Create a Docker container with vCluster standalone
- Install Kubernetes inside the container
- Set up networking and storage
- Generate a kubeconfig and connect automatically
After creation, verify it's working:
kubectl get nodes
kubectl get namespaces
kubectl get pods --all-namespacesYou should see:
- A control plane node
- Default namespaces (default, kube-system, etc.)
- System pods running
Before you begin, ensure you have:
-
Docker installed and running
docker --version docker ps # Should work without errors -
vCluster CLI v0.31.0 or later
vcluster version
-
kubectl (optional but recommended)
kubectl version --client
If you don't have vCluster CLI installed:
# macOS
brew install loft-sh/tap/vcluster
# Linux
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 && \
rm -f vcluster
# Windows
# Download from https://github.com/loft-sh/vcluster/releasesUpgrade to the required version:
vcluster upgrade --version v0.31.0vcluster use driver dockerThis sets Docker as your default driver for all vCluster operations.
For a better management experience, start the vCluster Platform:
vcluster platform start --version v4.7.0-alpha.0This provides:
- Web-based UI for cluster management
- Visual cluster overview
- Resource monitoring
- Easy cluster operations
Access the UI at https://localhost:10443 (default port).
Important: Start the platform before creating clusters. Clusters created before
vcluster platform startwill not be automatically synced to the UI. If you create clusters first and start the platform later, those existing clusters will not appear in the dashboard. Only clusters created after the platform is running will be visible in the UI.
vcluster listvcluster connect my-first-clusterThis updates your kubeconfig to use the cluster.
vcluster disconnect my-first-clusterThis removes the cluster from your kubeconfig.
Save resources by pausing a cluster:
vcluster pause my-first-clusterThe cluster state is preserved, but resources are freed.
Resume a paused cluster:
vcluster resume my-first-clusterThe cluster returns to its previous state.
vcluster delete my-first-clusterNow that you have a basic cluster running:
- Configure your cluster - Learn about advanced configuration options
- Explore advanced features - Sleep/wake, load balancers, external nodes
- Check out examples - See real-world use cases
- Compare with KinD - Understand the differences
- Check Docker is running:
docker ps - Check available resources:
docker system df - View cluster logs:
docker exec vcluster.cp.my-first-cluster journalctl -u vcluster --nopager
- Ensure cluster is running:
vcluster list - Reconnect:
vcluster connect my-first-cluster --update-current - Check kubeconfig:
kubectl config get-contexts
If you get port conflicts, specify custom ports:
vcluster create my-cluster \
--set experimental.docker.ports[0]="8080:80" \
--set experimental.docker.ports[1]="8443:443"For more troubleshooting help, see the Troubleshooting Guide.
Congratulations! You've created your first vind cluster. Explore the documentation to learn more about:
Happy clustering! 🚀