Tooling

Local Kubernetes

Running Kubernetes on your laptop for development.

The candidates

  • kind (Kubernetes-in-Docker) — Kubernetes-maintained, fast, multi-node, scriptable. The default for CI and serious local testing.
  • k3d — k3s wrapped in Docker; even faster than kind; lighter footprint.
  • Minikube — official Kubernetes project; broad driver support (Docker, Podman, KVM, VirtualBox, Hyper-V).
  • MicroK8s — Snap-based, Linux-focused; addons enabled by toggles.
  • Rancher Desktop — GUI; bundles k3s + kubectl + nerdctl; cross-platform.
  • Docker Desktop's k8s — single-node, slow startup, fine for casual use.
  • OrbStack — Mac; bundles a Kubernetes mode; very fast.
  • Talos with talosctl in QEMU — for trying Talos locally.

When each shines

ToolBest for
kindCI tests, multi-node testing, kubeadm-shaped clusters
k3dFastest spin-up; matches prod if you run k3s
MinikubeNeed a specific addon (Ingress, registry, GPU) without scripting
MicroK8sLinux laptop / Ubuntu shop
Rancher DesktopMac/Win, want GUI + container runtime in one
Docker Desktop"I already have Docker Desktop, I'll click the toggle"
OrbStack k8sMac, want fastest local

Tooling around local clusters

  • Tilt — see k8s-dev-loop; rebuild + redeploy on file change.
  • Skaffold — same niche, Google-built.
  • Devspace — competitor.
  • Telepresence — proxy local services into a remote cluster (or vice versa).
  • mirrord — same niche; modern.
  • Okteto — cloud dev environments backed by k8s.

Cluster lifecycle commands

# kind
kind create cluster --name dev
kind delete cluster --name dev
 
# k3d
k3d cluster create dev --servers 1 --agents 2
k3d cluster delete dev
 
# minikube
minikube start --driver=docker --nodes=3
minikube delete

Common addons people enable

  • NGINX Ingress / Traefik for ingress.
  • MetalLB for LoadBalancer services on local.
  • cert-manager + a self-signed CA for local TLS.
  • Local registry so you don't push to Docker Hub for every iteration.
  • Tilt's local registry helper — Tilt configures one for you.

Patterns to know

  • Match local k8s version to prod. kind --image kindest/node:v1.32.x or k3d --image rancher/k3s:v1.32.x-k3s1.
  • Use a local registry, not Docker Hub. kind + localhost:5000 is the canonical setup.
  • Don't kubectl apply -f . — use Tilt or Skaffold for the inner loop.
  • Tear down nightly to keep your dev env honest.

Pick this if…

  • Default for CI / multi-node testing: kind.
  • Fastest local spin-up: k3d.
  • Ubuntu / Linux laptop: MicroK8s.
  • GUI lover, cross-platform: Rancher Desktop.
  • Mac, want speed: OrbStack with k8s mode.
  • Already have Docker Desktop and don't care to install more: Docker Desktop k8s.

On this page