Erfahren Sie mehr über die Entfernung von Pods bei zonalen Störungen - AWS Präskriptive Leitlinien

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.

Erfahren Sie mehr über die Entfernung von Pods bei zonalen Störungen

Wenn es zu einer vollständigen Unterbrechung der Availability Zone kommt, d. h. wenn alle Knoten in dieser Availability Zone die Konnektivität zur Kubernetes-Steuerebene verlieren, erkennt der Node Lifecycle Controller in Kubernetes die Situation und entfernt Pods aus der betroffenen Zone. Pods auf nicht erreichbaren Knoten werden als markiert Terminating und neue Pods werden auf fehlerfreien Knoten in verfügbaren Availability Zones geplant. Während dieses Zeitraums zeigen die betroffenen Knoten einen NotReady Status an, der Scheduler verhindert, dass neue Pods auf diesen Knoten platziert werden, und der EndpointSlice Controller entfernt Endgeräte, die der beeinträchtigten Availability Zone zugeordnet sind, aus dem Service-Routing, bis die Konnektivität wiederhergestellt ist.

Bei Szenarien mit teilweisen Ausfällen von Knoten innerhalb einer Zone, in denen nur eine Untergruppe von Knoten nicht erreichbar ist, wendet der Node Lifecycle Controller ein anderes Räumungsverhalten an. Wenn die Störung über den konfigurierten Toleranzzeitraum (standardmäßig fünf Minuten) hinaus andauert, werden Pods auf getrennten Knoten als Terminating markiert und neue Pods auf fehlerfreien Knoten in verfügbaren Availability Zones geplant.

Implementierung von Amazon EKS Zonal Shift für mehr Resilienz

Amazon EKS Zonal Shift, das in Amazon Application Recovery Controller (ARC) integriert ist, bietet einen Mechanismus zur proaktiven Verwaltung des Datenverkehrs bei Beeinträchtigungen der Availability Zone. Diese Funktion ermöglicht die vorübergehende Umleitung des Netzwerkverkehrs von einer fehlerhaften Availability Zone in fehlerfreie Zonen innerhalb derselben AWS-Region Zone, um Serviceunterbrechungen zu minimieren.

Den Mechanismus der Zonenverschiebung verstehen

Amazon EKS Zonal Shift adressiert den Ost-West-Verkehr (Kommunikation zwischen den Pods innerhalb des Clusters). Wenn Zonal Shift mit Application Load Balancers oder Network Load Balancers konfiguriert ist, unterstützt es auch das Routing des eingehenden Datenverkehrs. Der Mechanismus koordiniert mehrere Komponenten von Kubernetes und der AWS Steuerungsebene, um den Datenverkehr sicher umzuleiten, ohne die laufenden Workloads zu unterbrechen. Während einer aktiven Zonenschicht führt Amazon EKS automatisch die folgenden koordinierten Aktionen aus:

  • Sperrung von Knoten: Alle Knoten in der beeinträchtigten Availability Zone sind gesperrt. Dadurch wird verhindert, dass der Kubernetes-Scheduler neue Pods auf den Knoten platziert, während er die vorhandenen Workloads beibehält.

  • Aussetzung des Neuausgleichs der Availability Zone: Bei verwalteten Knotengruppen werden Availability Zone-Rebalancing-Operationen ausgesetzt und Auto Scaling Scaling-Gruppen werden aktualisiert, sodass neue Datenebenenknoten ausschließlich in funktionsfähigen Availability Zones gestartet werden. Dadurch wird sichergestellt, dass in der beeinträchtigten Zone keine neuen Kapazitäten bereitgestellt werden.

  • Entfernung von Endpunkten: Der EndpointSlice Controller entfernt Pod-Endpunkte in der beeinträchtigten Availability Zone aus allen relevanten. EndpointSlices Dadurch wird sichergestellt, dass Service-Discovery- und Load-Balancing-Mechanismen den Datenverkehr nur an Pods weiterleiten, die in fehlerfreien Availability Zones laufen.

  • Erhaltung der Arbeitslast: Amazon EKS verzichtet darauf, Knoten zu beenden oder Pods in der betroffenen Availability Zone zu entfernen. Es hält die volle Kapazität in der beeinträchtigten Zone aufrecht, sodass der Verkehr nach Ablauf oder Abbruch der Zonenverschiebung sicher zurückkehren kann, ohne dass zusätzliche Skalierungsvorgänge erforderlich sind.

Methoden zur Aktivierung der Zonenschicht

Sie können je nach Betriebsmodell zwischen zwei Ansätzen wählen, um Zonenverschiebungen einzuleiten:

  • Die manuelle Zonenverschiebung ermöglicht eine vom Bediener gesteuerte Steuerung, wenn bestimmte Probleme in der Availability Zone durch Überwachung, Warnmeldungen oder Kundenberichte erkannt werden. Für diese Methode sind explizite Aktionen über die ARC-Konsole AWS Command Line Interface (AWS CLI) oder die Zonenschicht erforderlich APIs, wobei die Bediener die eingeschränkte Availability Zone angeben und eine Ablaufzeit für die Schicht festlegen. Manuelles Schalten ist sinnvoll, wenn Teams über spezielle Überwachungs- und Bereitschaftsfunktionen verfügen und es vorziehen, die direkte Kontrolle über Verkehrsmanagemententscheidungen zu behalten.

  • Zonal Autoshift autorisiert die AWS automatische Initiierung von Schichten, wenn ARC potenzielle Ausfälle oder Beeinträchtigungen der Availability Zone auf der Grundlage interner Telemetrie- und Integritätssignale für mehrere erkennt AWS-Services, darunter Netzwerkmetriken, Amazon Elastic Compute Cloud (Amazon EC2) und Elastic Load Balancing. AWS beendet automatisch einen Autoshift, wenn Indikatoren anzeigen, dass das Problem behoben wurde. Wenn Sie die höchste Verfügbarkeit mit minimalem manuellem Eingriff erreichen möchten, empfehlen wir diesen Ansatz, da er eine Reaktion innerhalb einer Minute auf festgestellte Beeinträchtigungen der Availability Zone ermöglicht.

Voraussetzungen für eine effektive Zonenverschiebung

Damit Zonal Shift Anwendungen bei Beeinträchtigungen der Availability Zone erfolgreich schützen kann, müssen Sie Ihre Cluster auf Multi-AZ-Resilienz ausrichten, bevor Sie die Zonal Shift-Funktion aktivieren:

  • Multi-AZ-Knotenverteilung: Stellen Sie Worker-Knoten in mindestens drei Availability Zones bereit, um eine ausreichende Redundanz zu gewährleisten, falls eine Zone nicht verfügbar ist.

  • Kapazitätsplanung: Stellen Sie im Voraus genügend Rechenkapazität in allen funktionsfähigen Availability Zones bereit, um die gesamte Arbeitslast zu bewältigen, wenn eine Availability Zone außer Betrieb genommen wird, da bei Skalierungsvorgängen während einer aktiven Unterbrechung die Kapazität möglicherweise nicht ausreicht.

  • Pod-Verteilung und Vorskalierung: Stellen Sie mehrere Replikate jeder Anwendung in allen Availability Zones bereit und skalieren Sie kritische Systemkomponenten wie CoreDNS in jeder Zone vorab. Auf diese Weise wird sichergestellt, dass auch nach der Verlagerung einer Zone noch genügend Kapazität zur Verfügung steht.

Empfehlungen für die Widerstandsfähigkeit gegen zonale Störungen

  • Zonal Shift bei der Cluster-Erstellung aktivieren: Aktivieren Sie für neue EKS-Cluster die Zonal Shift-Integration mit ARC während der ersten Bereitstellung über die Amazon EKS-Konsole oder AWS CLI Infrastructure-as-Code-Tools (IaC) wie. AWS CloudFormationFür EKS-Auto-Modus-Cluster, die mit Schnellkonfiguration erstellt wurden, ist Zonal Shift standardmäßig aktiviert.

  • Wählen Sie die geeignete Aktivierungsmethode: Wählen Sie Zonal Autoshift für Produktionsumgebungen, die maximale Verfügbarkeit mit automatisierter Reaktion erfordern, insbesondere für kundenorientierte Anwendungen, bei denen minutenlange Ausfallzeiten während einer Beeinträchtigung der Availability Zone erhebliche Auswirkungen auf das Geschäft haben können. Verwenden Sie die manuelle Zonenverschiebung für Umgebungen, in denen Betriebsteams es vorziehen, vor einer Verlagerung des Datenverkehrs eine ausdrückliche Genehmigung zu erteilen, oder in denen Anwendungstests und -validierungen noch im Gange sind.

  • Testen Sie die Resilienz vor der Bereitstellung in der Produktion: Überprüfen Sie das Cluster-Verhalten bei Verlust von Single-AZ, indem Sie manuell Testzonenverschiebungen initiieren oder zonale Autoshift-Übungsläufe aktivieren, um sicherzustellen, dass die Anwendungen weiterhin verfügbar sind, die Leistung akzeptabel bleibt und die Kapazität ausreichend ist, wenn die Anzahl der Availability Zones reduziert wird. Wir empfehlen diese Tests dringend, damit Sie Konfigurationslücken erkennen können, bevor es tatsächlich zu Beeinträchtigungen der Availability Zone kommt.

  • Mit der Load Balancer-Konfiguration koordinieren: Aktivieren Sie für Anwendungen, die externen Datenverkehr empfangen, die ARC-Zonenverschiebung auf den zugehörigen Application Load Balancers und Network Load Balancers, um sicherzustellen, dass sowohl der eingehende Verkehr als auch der Ost-West-Verkehr innerhalb des Clusters bei Beeinträchtigungen der Availability Zone gemeinsam verschoben werden. Diese Koordination verhindert Szenarien, in denen externe Anfragen gesunde Pods erreichen, diese Pods jedoch nicht mit Abhängigkeiten in der abgewandten Zone kommunizieren können.

  • Überwachen Sie den Schichtbetrieb: Nachdem Sie die Zonenschicht aktiviert haben, konfigurieren Sie die Überwachung und Warnmeldungen für Schichtereignisse, einschließlich Autoshift-Aktivierungen, manueller Schichtinitiierung und Ablauf von Schichten, um den betrieblichen Überblick über die Maßnahmen des Verkehrsmanagements und deren Auswirkungen auf das Anwendungsverhalten zu behalten.

Abschluss und Wiederherstellung von Schichten

Wenn eine zonale Schicht aufgrund der konfigurierten Dauer abläuft oder manuell storniert wird, nachdem die Beeinträchtigung der Availability Zone behoben wurde, aktualisiert der EndpointSlice Controller automatisch alle, EndpointSlices um die Endgeräte in der wiederhergestellten Availability Zone wieder einzubinden. Der Datenverkehr kehrt allmählich in die zuvor betroffene Zone zurück, wenn die Clients die Endpunktinformationen aktualisieren und neue Verbindungen herstellen. Dies ermöglicht die vollständige Nutzung der Clusterkapazität, ohne dass manuelles Eingreifen oder eine Neuplanung des Pods erforderlich sind.