kind

kind: Kubernetes in Docker

kind 14,561 (github.com/kubernetes-sigs/kind (https://github.com/kubernetes-sigs/kind 15,518 ), Apache-2.0, from SIG Testing) runs each node as a Docker 514 container from the kindest/node image (systemd 142,543 , containerd 234,762 , kubelet, kubeadm 5,150 ). Built to test Kubernetes 5,150 itself, it runs unmodified upstream Kubernetes, 1.37.0 by default in kind 0.33.0, installed by kubeadm. A small file sets the cluster's shape:

kind-bench.yaml: one control-plane node and one workerYAML
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
Creating the kind cluster and listing its workloadsYAML
time kind create cluster --name l3-kind --config kind-bench.yaml --quiet
docker ps --filter name=l3-kind --format '{{.Names}}  {{.Image}}'
kubectl wait --for=condition=Ready nodes --all --timeout=300s >/dev/null
kubectl create deployment nginx --image=nginx:1.30-alpine --replicas=2 >/dev/null
kubectl rollout status deployment nginx >/dev/null
kubectl get deployments,daemonsets -A -o custom-columns=KIND:.kind,NAMESPACE:.metadata.namespace,\
NAME:.metadata.name
Output
real 0m37.611s
user 0m1.822s
sys 0m2.441s
l3-kind-control-plane  kindest/node:v1.37.0
l3-kind-worker  kindest/node:v1.37.0
KIND         NAMESPACE            NAME
Deployment   default              nginx
Deployment   kube-system          coredns
Deployment   local-path-storage   local-path-provisioner
DaemonSet    kube-system          kindnet
DaemonSet    kube-system          kube-proxy

Besides the static control-plane Pods, kind adds only kindnet, kube-proxy, CoreDNS 366,312 and local-path-provisioner 2,940 , which backs PersistentVolumeClaims with node directories (Volumes and Storage): no Ingress controller, no load balancer. It also writes and selects a kind-l3-kind kubectl 5,150 context; kind delete cluster --name l3-kind removes both.