kind — Run Local Kubernetes Clusters in Docker
Spin up full multi-node Kubernetes clusters inside Docker containers in seconds. kind is SIG Testing's tool — the same way Kubernetes itself runs conformance tests.
What it is
kind (Kubernetes IN Docker) is a tool for running local Kubernetes clusters where each cluster node is a Docker container. It was originally designed for testing Kubernetes itself but has become a standard tool for local Kubernetes development, CI/CD pipelines, and integration testing. kind is a CNCF project maintained by the Kubernetes SIG.
kind is for developers and DevOps engineers who need ephemeral Kubernetes clusters for testing. If you want to test Helm charts, Kubernetes operators, or multi-node cluster behavior without cloud costs, kind provides clusters in seconds.
How it saves time or tokens
kind creates a fully functional Kubernetes cluster in under a minute using only Docker. No VM provisioning, no cloud API calls, no waiting for node boots. Multi-node clusters (control plane plus workers) are defined in a simple YAML config. Clusters are disposable -- create for a test, delete when done. For CI/CD, kind runs inside any environment that has Docker, making Kubernetes testing portable across CI providers.
How to use
- Install kind:
brew install kind(macOS) orgo install sigs.k8s.io/kind@latest. - Create a cluster:
kind create cluster. - Use kubectl as normal:
kubectl get nodes.
Example
# Install kind
brew install kind
# Create a simple cluster
kind create cluster --name my-test
# Create a multi-node cluster with config
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
# Load local Docker images into the cluster
kind load docker-image my-app:latest --name my-test
# Use kubectl
kubectl get nodes
kubectl apply -f deployment.yaml
# Delete when done
kind delete cluster --name my-test
Related on TokRepo
- DevOps AI tools -- infrastructure and container management tools
- Docker MCP -- Docker management via Model Context Protocol
Common pitfalls
- Trying to use kind for production workloads. kind is designed for testing and development. It runs on a single machine and lacks the reliability features needed for production Kubernetes.
- Not loading local images into the cluster. kind nodes are Docker containers with their own image cache. Use
kind load docker-imageto make local images available inside the cluster. - Running out of Docker resources with large clusters. Each kind node is a Docker container consuming CPU and memory. Limit node count and resource requests for local development.
Frequently Asked Questions
kind uses Docker containers as nodes while Minikube uses a VM. kind is faster to create and destroy, supports multi-node clusters easily, and works better in CI/CD. Minikube provides more features like addon management, GPU passthrough, and built-in dashboard.
Yes. kind supports multi-node clusters with separate control-plane and worker nodes. Define the node layout in a YAML config file and kind creates all nodes as Docker containers on your machine.
Yes. kind is commonly used in GitHub Actions, GitLab CI, and Jenkins for Kubernetes integration testing. It only requires Docker, which is available in most CI environments. Clusters create in seconds and clean up automatically.
kind supports multiple Kubernetes versions through pre-built node images. You specify the version with --image flag when creating a cluster. This lets you test your applications against different Kubernetes releases.
Yes. A kind cluster is a standard Kubernetes cluster accessible via kubectl. Helm, Kustomize, Skaffold, and other Kubernetes tools work without modification once the cluster is created and your kubeconfig is set.
Citations (3)
- kind GitHub— kind runs Kubernetes clusters using Docker containers as nodes
- kind Official Docs— CNCF project maintained by Kubernetes SIG
- kind Configuration Docs— Multi-node cluster configuration via YAML
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.