Skip to content

loft-sh/vind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

vind - vCluster in Docker

vind Logo

Next-Level Kubernetes Development - Run Kubernetes clusters as Docker containers

GitHub stars License

Quick Start โ€ข Features โ€ข Documentation โ€ข vs KinD โ€ข Examples


๐ŸŽฏ What is vind?

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.

Why vind?

  • ๐Ÿš€ 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)

๐Ÿš€ Quick Start

Prerequisites

  • Docker installed and running
  • vCluster CLI v0.31.0 or later

Installation

# Upgrade vCluster CLI to the latest version
vcluster upgrade --version v0.31.0

# Set Docker as the default driver
vcluster use driver docker

Optional: Start vCluster Platform UI

# Start vCluster Platform (optional but recommended)
vcluster platform start

This gives you a beautiful web UI to manage your clusters!

Create Your First Cluster

# Create a vCluster in Docker (automatically connects)
vcluster create my-cluster

# Verify it's working
kubectl get nodes
kubectl get namespaces

โœจ Key Features

๐ŸŽฎ Kubernetes UI via vCluster Platform

Integrated management and visibility with a beautiful web interface - no need for external tools!

๐Ÿ’ค Sleep and Wakeup

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-cluster

โšก Automatic Load Balancers

Hassle-free service exposure with automatic LoadBalancer support - works out of the box! (Enabled by default)

๐Ÿณ Pull-through Cache via Local Docker Daemon

Faster image pulls and reduced bandwidth by leveraging your local Docker daemon's image cache. (Enabled by default)

๐ŸŒ Join External Nodes

Connect real cloud instances (like EC2) as nodes to your local cluster - how cool is that!

๐Ÿ”ง Flexible CNI and CSI

Choose your own Container Network Interface and Container Storage Interface plugins.


๐Ÿ“– Documentation


๐ŸŽจ vind vs KinD

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 โš ๏ธ Limited
Snapshots โœ… Coming soon โŒ Not available

๐Ÿ‘‰ See detailed comparison


๐Ÿ”ง Configuration

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


๐Ÿ“š Examples

Check out our examples directory for:


๐ŸŽฏ Use Cases

Development Environments

Create isolated Kubernetes environments for each developer or feature branch.

CI/CD Pipelines

Spin up temporary clusters for testing and tear them down when done.

Learning Kubernetes

Perfect for learning K8s without the overhead of managing a full cluster.

Local Testing

Test your applications in a real Kubernetes environment before deploying.

Hybrid Development

Join cloud resources to your local cluster for hybrid development scenarios.


๐Ÿ› ๏ธ Common Commands

# 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

๐Ÿ”— Related Projects

  • vCluster - The underlying virtual cluster technology
  • vCluster Platform - Management platform for vClusters
  • KinD - Kubernetes in Docker (alternative)

๐Ÿค Contributing

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.


๐Ÿ“ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.


๐Ÿ“ž Support


Made with โค๏ธ by the Kubernetes community

โญ Star us on GitHub โ€ข ๐Ÿ“– Read the Docs โ€ข ๐Ÿ’ฌ Join Slack

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •