Kubernetes Dev Loop
Tilt, Skaffold, Devspace — making "save → see it on the cluster" fast.
The inner loop for working on k8s apps. Without these, you're rebuilding images and kubectl applying manually. Slow.
The candidates
- ★ Tilt —
Tiltfile(Starlark) describes services + watches; live-update for fast iteration; great UI. Default for serious dev workflows. - ★ Skaffold (Google) — same niche; YAML-driven; works well with Helm / Kustomize.
- Devspace — competitor; nice DX; sync + port-forward + run-in-pod.
- Garden — focused on monorepos / microservices; commercial extras.
- Okteto — cloud dev environments; pricier but very polished.
- Telepresence / mirrord — proxy a single local service into a remote cluster; useful as a complement, not replacement.
What they actually do
- Watch source files.
- Rebuild image (or do
kubectl cpfor live-update). - Push to a local registry / load into kind / k3d.
- Apply manifests / Helm / Kustomize.
- Port-forward / log-tail.
- Show a UI of what's running and where.
A typical workflow:
- Save a file.
- Tilt rebuilds image (or syncs file directly into pod for fast paths).
- Pod restarts.
- Logs stream.
- Hot loop: 5–15 seconds for most apps, sub-second for live-update paths.
Live update vs. image rebuild
- Image rebuild — full Docker build; clean but slow.
- Live update —
kubectl cp+ restart process inside the pod; very fast for interpreted languages (Node / Python). - Use live-update for dev loops; switch to image rebuild for staging / CI.
Local cluster + this combo
- kind / k3d / minikube — see Local Kubernetes.
- Tilt + kind + a local registry is the canonical combo.
Patterns to adopt
- ★ Local cluster + dev loop tool, not "deploy to dev k8s in the cloud." Faster, cheaper, no waiting for builds.
- Local registry —
localhost:5000or k3d's built-in registry. - Tilt extensions for common needs (port-forward, restart on crash, etc.).
- Profiles — different configs for "just frontend" vs. "full stack."
- Don't run prod manifests locally as-is. Use overlays / dev values.
Telepresence / mirrord patterns
- Sometimes you want to debug against real cluster state. Run your one service locally, route its calls into the remote cluster, get real DB / dependencies.
- mirrord is the modern, simpler choice; Telepresence is more capable.
Pick this if…
- Default new dev loop: Tilt.
- Already on Skaffold: stay; it works.
- Want cloud dev environments managed: Okteto.
- Local + remote-dependency debugging: mirrord.
- Monorepo with many services: Garden or Tilt with multi-repo support.