Next-Level Kubernetes Development - Run Kubernetes clusters as Docker containers
Quick Start โข Features โข Documentation โข vs KinD โข Examples
vind (vCluster in Docker) is a revolutionary way to run Kubernetes clusters directly as Docker containers. Built on top of vCluster, vind combines the power of virtual Kubernetes clusters with the simplicity of Docker, creating isolated Kubernetes environments that are perfect for development, testing, and CI/CD pipelines.
Note: vind uses vCluster's Private Nodes mode internally. This is automatically enabled when using the Docker driver and is required for proper operation. This is expected behavior, not a configuration issue.
- ๐ Faster than KinD - Optimized container-based architecture
- ๐ค Sleep & Wake - Pause clusters to save resources, resume instantly
- ๐จ Built-in UI - Free vCluster Platform UI for cluster management
- โก Load Balancers OOB - Automatic LoadBalancer services without extra setup
- ๐ณ Docker Native - Leverages Docker's networking and storage
- ๐ Pull-through Cache - Faster image pulls via local Docker daemon
- ๐ Hybrid Nodes - Join external nodes (even cloud instances) via VPN
- ๐ธ Snapshots - Save and restore cluster state (coming soon)
- Docker installed and running
- vCluster CLI v0.31.0 or later
# Upgrade vCluster CLI to the latest version
vcluster upgrade --version v0.31.0
# Set Docker as the default driver
vcluster use driver docker# Start vCluster Platform (optional but recommended)
vcluster platform startThis gives you a beautiful web UI to manage your clusters!
# Create a vCluster in Docker (automatically connects)
vcluster create my-cluster
# Verify it's working
kubectl get nodes
kubectl get namespacesIntegrated management and visibility with a beautiful web interface - no need for external tools!
Pause your clusters when not in use and resume them instantly. Perfect for saving resources during development breaks.
# Pause a cluster
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-clusterHassle-free service exposure with automatic LoadBalancer support - works out of the box! (Enabled by default)
Faster image pulls and reduced bandwidth by leveraging your local Docker daemon's image cache. (Enabled by default)
Connect real cloud instances (like EC2) as nodes to your local cluster - how cool is that!
Choose your own Container Network Interface and Container Storage Interface plugins.
- Getting Started Guide - Detailed setup and first steps
- Configuration Guide - All configuration options explained
- Advanced Features - Sleep/wake, load balancers, external nodes
- vind vs KinD - Detailed comparison
- Examples - Real-world examples and use cases
- Troubleshooting - Common issues and solutions
| Feature | vind | KinD |
|---|---|---|
| UI Platform | โ Built-in vCluster Platform UI | โ Command-line only |
| Sleep/Wake | โ Native pause & resume | โ Must delete & recreate |
| Load Balancers | โ Automatic, works OOB | โ Manual setup required |
| Image Caching | โ Pull-through via Docker daemon | โ Direct registry pulls |
| External Nodes | โ Join cloud instances via VPN | โ Local only |
| CNI/CSI Choice | โ Your choice | |
| Snapshots | โ Coming soon | โ Not available |
vind supports extensive configuration options. Here's a quick example:
experimental:
docker:
# Custom network
network: "my-custom-network"
# Additional nodes (only name required)
nodes:
- name: worker-1
env:
- "CUSTOM_VAR=value"
# Load balancer and registry proxy are enabled by default
# Custom ports
ports:
- "8080:80"
# Custom volumes
volumes:
- "/host/path:/container/path"
# Extra Docker args
args:
- "--cap-add=SYS_ADMIN"๐ Full configuration reference
Check out our examples directory for:
Create isolated Kubernetes environments for each developer or feature branch.
Spin up temporary clusters for testing and tear them down when done.
Perfect for learning K8s without the overhead of managing a full cluster.
Test your applications in a real Kubernetes environment before deploying.
Join cloud resources to your local cluster for hybrid development scenarios.
# Create a cluster (automatically connects)
vcluster create my-cluster
# List clusters
vcluster list
# Connect to a cluster
vcluster connect my-cluster
# Disconnect from a cluster
vcluster disconnect my-cluster
# Pause a cluster (save resources)
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-cluster
# Delete a cluster
vcluster delete my-cluster
# Describe cluster
vcluster describe my-cluster
# View control plane logs
docker exec vcluster.cp.my-cluster journalctl -u vcluster --nopager
# View node logs (for node named worker-1)
docker exec vcluster.node.my-cluster.worker-1 journalctl -u kubelet --nopager- vCluster - The underlying virtual cluster technology
- vCluster Platform - Management platform for vClusters
- KinD - Kubernetes in Docker (alternative)
vind is built on top of vCluster. The core code lives in the vCluster repository.
This repository serves as:
- Documentation and guides for the Docker driver feature
- Examples and use cases
- Community resources
To contribute to the core feature, please see the vCluster contributing guide.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- ๐ Documentation
- ๐ฌ Slack Community
- ๐ Issue Tracker
- ๐ก Discussions
Made with โค๏ธ by the Kubernetes community
โญ Star us on GitHub โข ๐ Read the Docs โข ๐ฌ Join Slack