kind (Kubernetes in Docker) runs cluster nodes as containers, so it needs only Docker.
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
chmod +x kind && sudo mv kind /usr/local/bin/
kind create cluster --name lab --image kindest/node:v1.21.1
kubectl cluster-info --context kind-lab
kubectl get nodes
A multi-node cluster with a config file:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
kind create cluster --config kind.yaml
kind delete cluster --name lab
Minikube is a good alternative with add-ons and a dashboard. Either is for development only: use a managed service or kubeadm for real workloads. Keep kubectl within one minor version of the cluster.