DEV Community

Mikhail Dorokhovich
Mikhail Dorokhovich

Posted on

Stack Overflow + dev.to (install errors are searched, not browsed - this is an evergreen Q&A magnet)

Don't start the build chapters until this k8s smoke test passes

Chapter 4 of a local-Kubernetes series: install Docker, kubectl, k3d, helm, and Tilt across macOS / Linux / Windows+WSL2, add k9s, and — the part most guides skip — prove the whole toolchain works together before you rely on it.

Key takeaways

  • One hard requirement: k3d needs Docker 20.10.5+ (runc ≥ v1.0.0-rc93). Everything else is host resources: 8 GB RAM comfortable (Docker Desktop for Windows requires 8 GB), 10–20 GB free disk, hardware virtualization mandatory.
  • Install bottom-up: Docker first, then kubectl, k3d, helm, Tilt last (Tilt needs Docker + kubectl + a working cluster to already exist). On macOS: brew install kubectl helm k3d tilt.
  • Windows: do all dev work inside WSL2. Keep the repo in the WSL2 filesystem, not C:\... — Windows-filesystem sources are slow over WSL2 and break Tilt's file sync.
  • The smoke test that actually matters:
k3d cluster create dev
k3d kubeconfig merge dev --kubeconfig-switch-context
kubectl get pods -A     # expect coredns, traefik, metrics-server... all Running
k3d cluster delete dev
Enter fullscreen mode Exit fullscreen mode
  • Classic gotchas, fixed: Docker daemon not running (connection refused); too many open files (raise fs.inotify.max_user_watches / max_user_instances, see k3d issue #803); Linux permission denied on docker.sock (usermod -aG docker $USER, re-login); virtualization disabled in BIOS; too little RAM → OOM.

The cluster is named dev on purpose — the next chapter reuses that name for the real myapp cluster.

Full article: https://dorokhovich.com/blog/local-k8s-workstation-setup?utm_source=devto&utm_medium=syndication&utm_campaign=local-k8s-workstation-setup

Top comments (0)