Das Kubernetes-Entwicklungsproblem
Ohne Skaffold (manuelle Schritte):
1. Code aendern
2. docker build -t meine-app:dev .
3. docker push meine-app:dev
4. kubectl set image deployment/meine-app app=meine-app:dev
5. kubectl logs -f deployment/meine-app
→ 2-5 Minuten Wartezeit pro Code-Aenderung!
Mit Skaffold:
Code aendern → Speichern
→ Skaffold erkennt Aenderung (file watch)
→ Baut Image (mit Cache, schnell!)
→ Deployed automatisch in Kubernetes
→ Streamt Logs
→ < 30 Sekunden!
Skaffold installieren
# Linux
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold && mv skaffold /usr/local/bin/
# macOS
brew install skaffold
# Version
skaffold version
skaffold.yaml konfigurieren
# skaffold.yaml im Projekt-Root
apiVersion: skaffold/v4beta11
kind: Config
metadata:
name: meine-app
build:
artifacts:
- image: meine-app
docker:
dockerfile: Dockerfile
sync:
# Hot-reload ohne Rebuild
infer:
- "**/*.html"
- "static/**"
local:
push: false # Kein Push fuer lokale Entwicklung
test:
- image: meine-app
custom:
- command: go test ./...
deploy:
kubectl:
manifests:
- k8s/*.yaml
helm:
releases:
- name: meine-app
chartPath: helm/meine-app
valuesFiles:
- helm/values.dev.yaml
portForward:
- resourceType: service
resourceName: meine-app
port: 80
localPort: 8080
profiles:
- name: staging
deploy:
helm:
releases:
- name: meine-app
valuesFiles:
- helm/values.staging.yaml
Entwicklungs-Workflow
# Lokales minikube/k3d starten
minikube start --profile dev
# Skaffold dev-Modus (file watcher aktiv)
skaffold dev
# Jetzt: Code aendern → auto build+deploy+logs
# Ctrl+C beendet und raeumt auf
# Einmaliges Deployment
skaffold run
# Cleanup
skaffold delete
# Spezifisches Profil
skaffold run -p staging
# Build debuggen
skaffold build --dry-run
FAQ
Kann Skaffold mit Remote-Kubernetes-Cluster arbeiten?
Ja. skaffold dev --kubeconfig=/pfad/zur/kubeconfig. Image muss dann ge-push-t werden (kein local push). Verwende Google Cloud Build, Docker Hub oder private Registry.
Fazit
Skaffold ist das Beste Tool fuer Kubernetes-Entwicklung: automatischer Build-Deploy-Zyklus macht die Inner Development Loop so schnell wie lokale Entwicklung.
Kubernetes-Entwicklung fuer KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.