Rolling Updates und Rollbacks
Implementieren Sie unterbrechungsfreie Anwendungsupdates und setzen Sie bei auftretenden Problemen auf vorherige Versionen zurück.
Rolling Updates und Rollbacks ist eine kostenlose Kubernetes Basics-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kubernetes Basics-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kubernetes Basics-Kurs umfasst insgesamt 4 Lektionen.
Updates ohne Ausfallzeit: Warum?
Stellen Sie sich vor, Sie aktualisieren eine laufende Anwendung. Ohne sorgfältige Planung könnten Benutzer Ausfallzeiten oder Fehler erleben. Genau hier spielen Rolling Updates in Kubernetes ihre Stärke aus!
Rolling Updates ermöglichen es Ihnen, Ihre Anwendung auf eine neue Version zu aktualisieren, ohne den Dienst zu unterbrechen. Neue Versionen werden schrittweise ausgerollt, sodass Ihre Anwendung verfügbar bleibt.
So handhaben Deployments Updates
Wenn Sie das Pod-Template eines Deployments aktualisieren (z. B. durch Ändern des Container-Images), fährt Kubernetes nicht einfach alles herunter und startet es neu. Stattdessen verwendet es standardmäßig die Strategie RollingUpdate.
- Es erstellt neue Pods mit der aktualisierten Konfiguration.
- Sobald die neuen Pods bereit sind, beendet es schrittweise die alten Pods.
- Dieser Prozess gewährleistet einen reibungslosen Übergang mit minimaler oder ganz ohne Ausfallzeit.
Die Geschwindigkeit des Rollouts steuern
Sie können das Verhalten von Rolling Updates mithilfe von zwei wichtigen Parametern im Abschnitt .spec.strategy.rollingUpdate Ihres Deployments feinabstimmen:
maxUnavailable: Die maximale Anzahl von Pods, die während des Updates nicht verfügbar sein darf. Möglich ist eine absolute Zahl oder ein Prozentsatz.maxSurge: Die maximale Anzahl von Pods, die zusätzlich zur gewünschten Pod-Anzahl erstellt werden darf. Auch hier ist eine absolute Zahl oder ein Prozentsatz möglich.
Standardmäßig sind beide Werte auf 25 % gesetzt.
Unser erstes Deployment
Beginnen wir mit einem einfachen Nginx-Deployment. Dieses YAML definiert unsere anfängliche Anwendung mit drei Replicas von nginx:1.14.2.
Wir verwenden dies als Grundlage für ein Rolling Update im nächsten Schritt.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80Ein Rolling Update durchführen
Aktualisieren wir nun unsere Nginx-Version von 1.14.2 auf 1.15.0. Dazu ändern wir einfach das Image im YAML und wenden die Änderung an.
Kubernetes erkennt die Änderung und startet automatisch ein Rolling Update. Achten Sie unten auf das Feld image:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15.0
ports:
- containerPort: 80Den Rollout-Status überwachen
Nachdem Sie das aktualisierte YAML angewendet haben, können Sie den Fortschritt Ihres Rolling Updates mit dem Befehl kubectl rollout status überwachen:
kubectl rollout status deployment/my-nginx
Sie sehen Meldungen, die anzeigen, dass neue Pods erstellt und alte beendet werden, bis das Update abgeschlossen ist. Mit kubectl get rs können Sie außerdem die alten und neuen ReplicaSets anzeigen.
Die Rollout-Historie prüfen
Kubernetes speichert eine Historie der Revisionen Ihrer Deployments. Das ist äußerst nützlich, um Änderungen nachzuvollziehen und bei Bedarf ein Rollback durchzuführen.
Verwenden Sie folgenden Befehl, um die Historie anzuzeigen:
kubectl rollout history deployment/my-nginx
Sie sehen eine Liste von Revisionen, von denen jede einen bestimmten Zustand Ihres Deployments darstellt. Der Wert CHANGE-CAUSE gibt häufig den Befehl oder die YAML-Änderung an.
Wann ein Rollback erforderlich ist
Selbst bei sorgfältigen Tests kann eine neue Anwendungsversion manchmal Fehler oder Leistungsprobleme einführen, die unentdeckt geblieben sind. In solchen kritischen Situationen benötigen Sie eine schnelle Möglichkeit, zu einem bekannten stabilen Zustand zurückzukehren.
Hier kommen Rollbacks ins Spiel. Damit können Sie ein problematisches Update rückgängig machen und Ihr Deployment anhand seiner Historie auf eine frühere, funktionsfähige Version zurücksetzen.
Ein Rollback durchführen
Um auf die unmittelbar vorherige Revision zurückzusetzen, verwenden Sie:
kubectl rollout undo deployment/my-nginx
Wenn Sie auf eine bestimmte Revision zurücksetzen möchten (z. B. Revision 1), können Sie diese angeben:
kubectl rollout undo deployment/my-nginx --to-revision=1
Kubernetes führt ein weiteres Rolling Update durch, um die Pods auf die angegebene historische Konfiguration zurückzusetzen.
Die Rollout-Strategie prüfen
Welche der folgenden Parameter können verwendet werden, um das Verhalten der RollingUpdate-Strategie eines Kubernetes-Deployments zu steuern?
Zusammenfassung: Reibungslose Updates und Sicherheitsnetze
Wir haben untersucht, wie Kubernetes-Deployments Rolling Updates ohne Ausfallzeit ermöglichen und Ihre Anwendungen reibungslos auf neue Versionen umstellen. Sie haben gelernt:
- Deployments verwenden standardmäßig
RollingUpdate. maxUnavailableundmaxSurgesteuern die Geschwindigkeit des Updates.kubectl rollout statusüberwacht den Fortschritt.kubectl rollout historyprotokolliert Revisionen.kubectl rollout undoermöglicht schnelle Rollbacks auf stabile Versionen.
Diese Funktionen sind entscheidend, um eine hohe Verfügbarkeit und Zuverlässigkeit Ihrer Anwendungen sicherzustellen!
Häufig gestellte Fragen
Ist die Lektion „Rolling Updates und Rollbacks“ kostenlos?
Ja — der vollständige Text von „Rolling Updates und Rollbacks“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kubernetes Basics-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kubernetes Basics-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Rolling Updates und Rollbacks“?
Implementieren Sie unterbrechungsfreie Anwendungsupdates und setzen Sie bei auftretenden Problemen auf vorherige Versionen zurück. Du übst Kubernetes Basics mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kubernetes Basics zu starten?
Keine Vorkenntnisse erforderlich. Kubernetes Basics auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Rolling Updates und Rollbacks“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kubernetes Basics-Lektion Code schreiben und ausführen?
Ja. Jede Kubernetes Basics-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Deployments verstehen
- Anwendungen mit ReplicaSets skalieren
- Rolling Updates und Rollbacks
- Deployment-Strategien: Blue-Green und Canary