ScriptsApr 14, 2026·3 min read

Skaffold — Fast Kubernetes Development Workflow from Google

Skaffold handles the inner-loop build-push-deploy cycle for Kubernetes apps. Edit code, and Skaffold rebuilds images, updates manifests, and redeploys to a cluster in seconds — ideal for local dev and CI/CD.

TL;DR
Skaffold automates the inner-loop build-push-deploy cycle for Kubernetes development.
§01

What it is

Skaffold is a command-line tool from Google that automates the inner development loop for Kubernetes applications. When you edit code, Skaffold detects the change, rebuilds the container image, pushes it (or sideloads it to a local cluster), updates Kubernetes manifests, and redeploys — all in seconds.

It targets developers building microservices on Kubernetes who are tired of manually running docker build, docker push, and kubectl apply after every code change.

§02

How it saves time or tokens

Skaffold eliminates the manual build-push-deploy cycle that typically takes minutes per iteration. Its file sync feature can copy changed files directly into running pods without rebuilding the entire image. Combined with smart caching and incremental builds, Skaffold reduces the feedback loop from minutes to seconds.

§03

How to use

  1. Install Skaffold via Homebrew or the official binary release.
  2. Run skaffold init in a project directory that has a Dockerfile and Kubernetes manifests. This generates a skaffold.yaml configuration.
  3. Run skaffold dev to start the continuous development loop. Skaffold watches files, rebuilds on change, redeploys, and streams logs.
§04

Example

# skaffold.yaml
apiVersion: skaffold/v4beta11
kind: Config
build:
  artifacts:
    - image: myapp
      docker:
        dockerfile: Dockerfile
deploy:
  kubectl:
    manifests:
      - k8s/*.yaml
# Start continuous dev loop
skaffold dev
# Or one-shot deploy
skaffold run
§05

Related on TokRepo

§06

Common pitfalls

  • Skaffold works with any builder (Docker, Buildpacks, Jib, Kaniko) but the default is Docker. If your cluster cannot pull from a local registry, configure Skaffold to use a remote registry or sideload images directly.
  • File sync only works for interpreted languages (Python, Node.js) where restarting the process picks up changes. Compiled languages (Go, Java) still require a full rebuild.
  • Skaffold profiles let you configure different behaviors for dev vs. staging vs. production, but mixing profiles with Helm values files can create confusing override chains.

Frequently Asked Questions

Does Skaffold work with Helm and Kustomize?+

Yes. Skaffold supports kubectl, Helm, and Kustomize as deployers. You configure the deployer in skaffold.yaml and Skaffold handles rendering manifests and applying them to the cluster. You can even chain multiple deployers in a single config.

Can Skaffold deploy to remote clusters?+

Yes. Skaffold works with any Kubernetes cluster your kubeconfig points to, including GKE, EKS, AKS, and self-managed clusters. For remote clusters, configure a container registry that the cluster can pull from.

How does Skaffold differ from Tilt?+

Both automate Kubernetes inner-loop development. Skaffold uses a declarative YAML config and runs as a CLI. Tilt uses a Starlark-based Tiltfile and provides a web dashboard. Skaffold is more CI/CD-friendly; Tilt offers richer real-time UI feedback.

What is file sync in Skaffold?+

File sync copies changed files directly into a running pod without rebuilding the container image. This is useful for interpreted languages where a file change plus process restart is sufficient. It reduces iteration time from tens of seconds to under a second.

Is Skaffold actively maintained?+

Skaffold is maintained by Google Cloud and is part of the GoogleContainerTools organization. It receives regular releases and is used internally at Google for Kubernetes development workflows.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets