kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
To install, download the binary for your platform from “Assets”, then rename it to kind (or perhaps kind.exe on Windows) and place this into your $PATH at your preferred binary installation directory.
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind
sudo kind completion bash > /etc/bash_completion.d/kind
sudo kind completion zsh > /etc/bash_completion.d/kind
To configure kind cluster creation, you will need to create a YAML config file. This file follows Kubernetes conventions for versioning etc.
Multi-node clusters
In particular, many users may be interested in multi-node clusters. A simple configuration for this can be achieved with the following config file contents:
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
Control-plane HA
You can also have a cluster with multiple control-plane nodes:
# a cluster with 3 control-plane nodes and 3 workers
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker
kind create cluster --name my-cluster
Creating a Kubernetes cluster is as simple as kind create cluster.
kind create cluster
kind create cluster --image kindest/node:latest
If you created a cluster with kind create cluster then deleting is equally simple:
kind delete cluster
If the flag --name is not specified, kind will use the default cluster context name kind and delete that cluster.
Docker images can be loaded into your cluster nodes with:
kind load docker-image my-custom-image-0 my-custom-image-1