Neue Version ohne Downtime ausrollen — und im Notfall in Sekunden zurück.
Das Deployment macht Updates rollend: neue Pods hoch, alte runter, Stück für Stück. Geht etwas schief, rollst du zurück. Das ist deine größte Sicherheitsfunktion im Betrieb.
Der saubere Weg ist deklarativ: Image im Manifest ändern und apply. Schnell-Variante:
# Image ändern (löst rollendes Update aus)
kubectl set image deploy/web web=nginx:1.28 -n lernen
# Das Update LIVE beobachten — wartet bis fertig
kubectl rollout status deploy/web -n lernen
rollout status ist dein Wächter
Er blockiert, bis das Update durch ist — oder meldet, dass es hängt. Nie „blind“ updaten und weggehen;
immer den rollout status abwarten.
Jedes Update erzeugt eine neue Revision. Das ist deine Zeitmaschine:
# Welche Versionen gab es?
kubectl rollout history deploy/web -n lernen
# NOTFALL: eine Version zurück
kubectl rollout undo deploy/web -n lernen
# Gezielt zu einer bestimmten Revision
kubectl rollout undo deploy/web --to-revision=2 -n lernen
status → history → undo: „Wie läufts? — Was gab's? — Zurück!“
Wenn ein Update Ärger macht, ist rollout undo fast immer der erste, ruhigste Griff.
# Mehr/weniger Replicas (Last, Wartung)
kubectl scale deploy/web --replicas=4 -n lernen
# Pods neu starten OHNE Image-Änderung (z.B. nach ConfigMap-Update)
kubectl rollout restart deploy/web -n lernen
Das Deployment hält während des Updates eine Mindestzahl Pods bereit (maxUnavailable) und startet
neue erst, bevor alte gehen. Mit einem Readiness-Probe nimmt der Service einen neuen Pod erst
in den Lastverkehr, wenn er wirklich bereit ist — defekte Versionen erreichen so nie alle Nutzer.
kubectl set image deploy/web web=nginx:1.28 -n lernen
kubectl rollout status deploy/web -n lernen
kubectl rollout history deploy/web -n lernen
kubectl rollout undo deploy/web -n lernen # wieder zurück
kubectl get pods -n lernen -w # beim Undo live zusehen
maxSurge und maxUnavailable?“,
„Was ist eine Readiness-Probe genau?“ oder „Wie rolle ich zu einer ganz bestimmten alten Version zurück?“