Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bewährte Methoden für das Rollback der Cluster-Version
Mit dem Versionsrollback von Amazon Elastic Kubernetes Service (Amazon EKS) können Sie die Kubernetes-Steuerungsebene Ihres Clusters innerhalb von 7 Tagen nach einem direkten Upgrade auf die vorherige Nebenversion zurücksetzen. Auf dieser Seite werden bewährte Methoden für die Planung, Ausführung und Operationalisierung des Rollbacks als Teil Ihres Upgrade-Workflows beschrieben.
Einzelheiten zu den Voraussetzungen, schrittweise Anleitungen und eine API-Referenz finden Sie unter Rollback-Cluster auf eine frühere Kubernetes-Version.
Erfahren Sie, wie das Modell der gemeinsamen Verantwortung auf Rollback angewendet wird
Wenn Sie ein Rollback der Cluster-Version initiieren, verwaltet Amazon EKS das Rollback der Steuerungsebene. Sie sind für die Datenebene, die Add-Ons und die Anwendungskompatibilität verantwortlich. Im Folgenden werden die Verantwortlichkeiten beschrieben:
-
Amazon EKS verwaltet: Rollback des Kubernetes-API-Servers und der Komponenten der Steuerungsebene. Bei Clustern im Auto-Modus verwaltet Amazon EKS auch das Rollback von Worker-Knoten.
-
Sie sind verantwortlich für: Rollback verwalteter Knotengruppen, selbstverwalteter Knoten und Hybridknoten. Sie müssen außerdem die Kompatibilität der Add-Ons überprüfen und sicherstellen, dass Ihre Anwendungen, benutzerdefinierten Controller und Tools von Drittanbietern ordnungsgemäß mit der Vorgängerversion funktionieren.
Weitere Informationen zum Modell der gemeinsamen Verantwortung für Upgrades finden Sie unter Verstehen Sie, wie das Modell der gemeinsamen Verantwortung auf Cluster-Upgrades angewendet wird.
Planen Sie Upgrades unter Berücksichtigung des Rollbacks
Das Versions-Rollback funktioniert am besten, wenn Ihr Upgrade-Workflow so konzipiert ist, dass das Rollback-Fenster geöffnet bleibt.
-
Separate Upgrades der Steuerungsebene und der Datenebene (Cluster, die nicht im automatischen Modus ausgeführt werden). Bei Clustern, die verwaltete Knotengruppen oder selbstverwaltete Knoten verwenden, sollten Sie erwägen, zuerst die Steuerungsebene zu aktualisieren und vor dem Upgrade der Worker-Knoten eine Back-Phase einzuplanen. Während die Knoten eingeschaltet bleiben N-1, bleibt die Kubelet-Version von Skew Insight im Status PASSING. Dadurch bleibt der Rollback-Pfad frei, ohne dass zuerst ein Rollback der Knoten durchgeführt werden muss.
-
Aktualisieren Sie Add-Ons auf kreuzkompatible Versionen. Stellen Sie vor dem Upgrade der Steuerungsebene sicher, dass alle Add-Ons (verwaltet und selbstverwaltet) sowohl mit der aktuellen als auch mit der Zielversion von Kubernetes kompatibel sind. Dadurch bleibt der Überblick über die Kompatibilität der Add-Ons sowohl für das Upgrade als auch für das Rollback klar.
-
Verwenden Sie von Amazon EKS verwaltete Add-Ons, um von Erkenntnissen zur Rollback-Bereitschaft zu profitieren, die automatisch die Kompatibilität der Add-On-Versionen überprüfen.
-
Vermeiden Sie die Selbstverwaltung eines verwalteten Add-Ons (z. B. das Überschreiben der Version außerhalb des EKS-Add-On-Lebenszyklus). Während des Rollbacks behandelt Insights die verwaltete Add-On-Konfiguration als Informationsquelle und erkennt keine von Ihnen eingeführten Versionsabweichungen.
-
-
Vermeiden Sie es, während der Backphase versionsspezifische APIs zu verwenden. Wenn Sie während des 7-Tage-Fensters Ressourcen erstellen, die APIs oder Funktionen verwenden, die nur in der neuen Version verfügbar sind, müssen Sie sie vor dem Rollback entfernen. Beschränken Sie die Einführung von APIs, die nur für neue Versionen verfügbar sind, bis Sie sicher sind, dass das Upgrade stabil ist.
-
Führen Sie ein Upgrade früher durch, nicht später. Da Rollback verfügbar ist, können Sie getrost kurz nach der Veröffentlichung einer neuen Version ein Upgrade durchführen, anstatt auf verlängerte Support-Fristen zu warten. Ein früheres Upgrade gibt Ihnen mehr Zeit für die Validierung und reduziert die Kosten für den erweiterten Support.
-
Beachten Sie die Rollback-Einschränkungen für den erweiterten Support. Wenn Ihr Cluster am Ende des erweiterten Supports automatisch aktualisiert wurde, können Sie nicht zur vorherigen Version zurückkehren. Wenn Sie am Ende des Standardsupports ein automatisches Upgrade erhalten haben, können Sie ein Rollback durchführen, aber Sie müssen zuerst die Upgrade-Richtlinie auf
EXTENDEDändern.
Allgemeine Hinweise zur Upgrade-Planung, einschließlich Verfallsrichtlinien, Versionshinweisen und Zusatzkompatibilität, finden Sie unter Bewährte Methoden für Cluster-Upgrades.
Informieren Sie sich vor dem Rollback über die Einsatzfähigkeit eines Rollbacks
Amazon EKS liefert unter der ROLLBACK_READINESS Kategorie Cluster-Einblicke Einblicke in die Rollback-Bereitschaft zu bestimmten Zeitpunkten. Diese Prüfungen sind Ihr primäres Instrument zur Bewertung der Rollback-Sicherheit.
-
Überprüfen Sie die Erkenntnisse sofort nach dem Upgrade. Warte nicht, bis etwas schief geht. Überprüfen Sie nach dem Upgrade die Erkenntnisse zur Rollback-Bereitschaft, damit Sie wissen, wie Ihr aktueller Rollback-Status aussieht.
-
Gehen Sie proaktiv auf ERROR-Erkenntnisse ein. Wenn Insights kurz nach einem Upgrade den Status FEHLER anzeigen, beheben Sie sie frühzeitig, solange das 7-Tage-Fenster noch geöffnet ist. Je länger Sie warten, desto wahrscheinlicher ist es, dass Ihr Cluster-Status abweicht und neue Blocker auftreten.
-
Verstehen Sie, was Erkenntnisse abdecken und was nicht. Insights überprüfen die von Amazon EKS verwalteten Zusatzversionen, die API-Nutzung, den Versionsversatz und den Cluster-Zustand. Sie überprüfen keine selbstverwalteten Add-Ons, benutzerdefinierte Controller oder die Kompatibilität auf Anwendungsebene. Sorgen Sie für Ihre eigene Kompatibilitätsüberprüfung für selbstverwaltete Add-Ons (z. B. Cluster-Autoscaler, Ingress-Controller, benutzerdefinierte Operatoren, Monitoring-Agents).
Eine vollständige Liste der Insight-Checks und des Statusverhaltens finden Sie unter Rollback des Clusters auf eine frühere Kubernetes-Version.
Bereiten Sie Knoten, die nicht im automatischen Modus ausgeführt werden, für das Rollback vor
Bei Clustern, die verwaltete Knotengruppen, selbstverwaltete Knoten oder AWS Fargate verwenden, sind Sie dafür verantwortlich, sicherzustellen, dass die Worker-Knoten mit der Ziel-Rollback-Version kompatibel sind.
-
Verwaltete Knotengruppen. Sie müssen Ihre verwalteten Knotengruppen auf die vorherige Version zurücksetzen, bevor Sie ein Rollback der Steuerungsebene durchführen. Verwenden Sie den
UpdateNodegroupVersionVorgang mit der vorherigen Kubernetes-Version. Das Rollback berücksichtigt Ihre konfigurierten Aktualisierungseinstellungen (maxUnavailable, Aktualisierungsstrategie). -
Self-managed und Hybridknoten. Aktualisieren Sie Ihre Knoten-AMIs oder -Konfigurationen, um die vorherige Kubernetes-Version zu verwenden, bevor Sie ein Rollback der Steuerungsebene durchführen.
-
Fargate. Versions-Rollback wird für Fargate-Worker-Knoten nicht unterstützt. Löschen Sie Fargate-Pods, auf denen dieselbe Version wie die Steuerungsebene ausgeführt wird, bevor Sie das Rollback initiieren, oder verwenden Sie diese Option,
--forceum die Erkennung von Versionsverzerrungen zu umgehen (was zu unerwartetem Verhalten führen kann, bis die Pods ersetzt werden).
Anleitungen zur Konfiguration PodDisruptionBudget und Topologieverteilung, um die Verfügbarkeit der Arbeitslast bei Node-Updates sicherzustellen, finden Sie unter Bewährte Methoden für Cluster-Upgrades.
Verwalten Sie die Amazon EKS Auto Mode-Unterbrechungskontrollen für Rollbacks
Bei Clustern, auf denen Amazon EKS Auto Mode ausgeführt wird, kann die Node-Rollback-Phase der längste Teil des Vorgangs sein. Ihre Störungskontrollen bestimmen direkt, wie schnell das Rollback abgeschlossen wird.
-
Prüfen Sie die Budgets für Störungen, bevor Sie das Rollback einleiten. Amazon EKS bietet Einblicke in die Rollback-Bereitschaft für NodePool Disruptionsbudgets. Bei Budgets, die auf 0 gesetzt sind, wird ein ERROR-Insight ausgelöst, wodurch ein Rollback auf unbestimmte Zeit blockiert wird. Restriktive Budgets und PodDisruptionBudgets (PDBs) lösen WARNING-Einblicke aus, die das Rollback verlangsamen, aber Fortschritte ermöglichen. Behandeln Sie die ERROR-Informationen, bevor Sie das Rollback einleiten.
-
Seien Sie darauf vorbereitet, die Budgets während des Rollbacks anzupassen. Wenn das Rollback länger als erwartet dauert, können Sie die NodePool Disruptionsbudgets und PDBs
kubectlwährend des Rollbacks anpassen. Durch eine Erhöhung des Budgets können mehr Knoten gleichzeitig ausgetauscht werden. -
Entfernen Sie Anmerkungen, die nicht unterbrochen werden dürfen, von blockierenden Knoten. Die
karpenter.sh/do-not-disruptAnmerkung auf den Knoten blockiert das Rollback auf unbestimmte Zeit. Entfernen Sie sie von den Knoten, die ersetzt werden sollen. -
Verfolgen Sie den Fortschritt des Knoten-Rollbacks. Wird verwendet
kubectl get nodes -l karpenter.sh/nodepool=<nodepool-name> -o wide, um zu überwachen, welche Knoten durch das AMI der Vorgängerversion ersetzt wurden. -
CancelUpdate Bei Bedarf verwenden. Wenn das Rollback zu lange dauert oder mehr Probleme verursacht, als es löst, brechen Sie das Rollback ab. Nach dem Abbrechen konvergieren die Knoten wieder zur aktuellen Version, und Sie können einen anderen Ansatz wählen.
-
Stellen Sie ein angemessenes Timeout ein. Verwenden Sie den
timeoutMinutesParameter inrollbackConfig, um ihn an Ihren betrieblichen Erwartungen auszurichten. Die Standardeinstellung ist 720 Minuten (12 Stunden). Bei Clustern mit konservativen Budgets sollten Sie erwägen, den Wert zu erhöhen. Richten Sie sich bei IaC-managed Clustern nach dem Timeout Ihres Tools.
Vollständige Rollback-Verfahren für den automatischen Modus und den CancelUpdate Vorgang finden Sie unter Rollback von Amazon EKS-Auto-Mode-Clustern.
Überwachen Sie den Fortschritt des Rollbacks
Verwenden Sie während eines Rollbacks Folgendes, um den Status zu verfolgen und Probleme zu erkennen:
-
DescribeUpdate Betrieb. Wird verwendet
describe-update, um den aktuellen Status des Rollback-Vorgangs zu überprüfen (InProgress,Successful,Failed,Cancelled). Um den Fortschritt der Stornierung zu verfolgen, überprüfen Sie dascancellationObjekt in der Antwort. -
Erkenntnisse bündeln. Amazon EKS überprüft die Erkenntnisse erneut, bevor mit dem Rollback der Steuerungsebene fortgefahren wird (nachdem das Node-Rollback für den Auto-Modus abgeschlossen ist). Halten Sie Ausschau nach neuen ERROR-Erkenntnissen, die möglicherweise erschienen sind.
-
Cluster-Status. Bei Clustern im Auto-Modus bleibt der Cluster-Status
ACTIVEwährend des Node-Rollbacks erhalten und wechseltUPDATINGnur während des Rollbacks auf der Steuerungsebene. Verlassen Sie sich nicht ausschließlich auf den Cluster-Status, um zu wissen, dass ein Rollback im Gange ist — verwenden SieDescribeUpdate -
Node-Versionen. Überprüfen Sie für den automatischen Modus die Kubernetes-Versionen des Knotens, um den Fortschritt des Knotenaustauschs zu verfolgen. Überwachen Sie bei verwalteten Knotengruppen den Aktualisierungsstatus der Knotengruppe.
Behandeln Sie Cluster, die von Infrastructure as Code (IaC) verwaltet werden
Für IaC-Tools (Infrastructure as Code) gelten Zeitüberschreitungsbeschränkungen, die möglicherweise mit der Dauer des Rollbacks im automatischen Modus in Konflikt geraten.
-
AWS CloudFormation unterstützt bis zu 36 Stunden pro Ressource. Wenn das Rollback diesen Wert überschreitet, wird es als No-Op CloudFormation behandelt, was dazu führen kann, dass der Cluster in einen Drift-Zustand gerät, in dem die Vorlage nicht die tatsächliche Cluster-Version wiedergibt. Das Standard-Rollback-Timeout beträgt 720 Minuten (12 Stunden).
-
Terraform Enterprise/Cloud hat ungefähr 24-Stunden-Timeouts, obwohl die clientseitigen Timeouts variieren.
-
Passen
timeoutMinutesSie sich an das Timeout Ihres IaC-Tools an, um zu verhindern, dass das IaC-Tool das Timeout überschreitet, bevor Amazon EKS das Rollback abschließt. -
Erwägen Sie, das Rollback CLI/API für Cluster im Auto-Modus mit restriktiven Budgets statt über IaC einzuleiten. Verwenden Sie es
CancelUpdatedirekt, wenn bei der IaC-Ebene ein Timeout auftritt. -
Das CloudFormation AWS-Stack-Rollback löst kein Versions-Rollback aus. Wenn ein CloudFormation AWS-Stack-Update fehlschlägt, initiiert das automatische Zurücksetzen des Stacks auf eine frühere Vorlagenversion kein Rollback der Cluster-Version. Sie müssen explizit ein Versions-Rollback einleiten.
Verwenden Sie Rollback als Sicherheitsnetz, nicht als routinemäßigen Arbeitsablauf
Das Versions-Rollback soll Ihnen helfen, Probleme nach dem Upgrade zu beheben. Es funktioniert am besten, wenn es mit Ihren bestehenden Upgrade-Praktiken kombiniert wird.
-
Ein Rollback ergänzt das Testen, es ersetzt es nicht. Nutzen Sie weiterhin Cluster-Einblicke, Tests vor dem Upgrade in Nicht-Produktionsumgebungen und gestaffelte Rollouts. Rollback behandelt die Fälle, die durch Tests nicht erkannt werden können — Probleme, die nur in der Produktion auftreten.
-
Rollback reduziert den Bedarf an manuellen Sicherungs- und Snapshot-Verfahren als primärem Sicherheitsmechanismus. Da natives Rollback verfügbar ist, müssen Sie sich bei Upgrades nicht mehr ausschließlich auf etcd-Snapshots oder benutzerdefinierte Rollback-Skripts für die Notfallwiederherstellung verlassen.
-
Erkenntnisse werden nach bestem Wissen gewonnen und sind zeitnah. Amazon EKS wertet sie aus, wenn Sie ein Rollback auslösen. Änderungen, die nach dieser Prüfung vorgenommen werden (z. B. das Erstellen von Ressourcen mit neuen APIs), werden nicht erfasst und können nach Abschluss des Rollbacks zu Problemen führen.
-
Ein Rollback garantiert nicht die Wiederherstellung der Anwendung. Amazon EKS stellt die Steuerungsebene sicher wieder her, aber es liegt in Ihrer Verantwortung, Ihre Anwendungen, Konfigurationen und Abhängigkeiten anhand der vorherigen Version zu validieren.
Rollback reduziert den Bedarf an blau-grünen Upgrades
Unternehmen, die bisher Blue-Green-Cluster-Upgrades hauptsächlich aus Gründen des „Revert-Path“ verwendet haben, können jetzt direkte Upgrades mit Versionsrollback als Alternative in Betracht ziehen. In-place Upgrades mit Rollback bieten niedrigere Infrastrukturkosten (keine doppelten Cluster), eine konsistente Cluster-Identität (derselbe API-Endpunkt, OpenID Connect (OIDC) -Anbieter und elastische Netzwerkschnittstellen (ENIs)) und einfachere Abläufe.
Blue-green wird möglicherweise immer noch bevorzugt, wenn Sie mehrere Versionen gleichzeitig ändern, Workload-Migrationen ausgiebig testen oder während der Validierung eine vollständige Isolierung des Datenverkehrs gewährleisten müssen. Weitere Informationen finden Sie unter Evaluieren von Blue/Green Clustern in den Best Practices für Cluster-Upgrades.