Automatisches Reparieren von AKS-Knoten (Azure Kubernetes Service)

Azure Kubernetes Service (AKS) überwacht den Integritätszustand von Workerknoten kontinuierlich und führt im Falle eines fehlerhaften Zustands automatisch eine Knotenreparatur durch. Von der Azure-VM-Plattform werden Wartungsmaßnahmen für virtuelle Computer durchgeführt, auf denen Probleme auftreten. AKS und virtuelle Azure-Computer arbeiten zusammen, um Dienstunterbrechungen für Cluster zu minimieren.

Dieser Artikel umfasst Informationen zum Verhalten der automatischen Knotenreparatur für Windows- und Linux-Knoten.

Überprüfung auf NotReady-Knoten durch AKS

Von AKS wird anhand der folgenden Regeln ermittelt, ob ein Knoten fehlerhaft ist und repariert werden muss:

  • Der Knoten meldet bei aufeinanderfolgenden Überprüfungen innerhalb eines Zeitraums von 10 Minuten den Status NotReady.
  • Der Knoten meldet innerhalb von zehn Minuten keinen Status.

Sie können den Integritätszustand Ihrer Knoten mit dem Befehl kubectl get nodes manuell überprüfen.

Funktionsweise der automatischen Reparatur

Hinweis

AKS initiiert Reparaturvorgänge mit dem Benutzerkonto aks-remediator.

Wenn von AKS ein fehlerhafter Knoten identifiziert wird und dieser Knoten fünf Minuten lang fehlerhaft ist, werden folgende Aktionen ausgeführt:

  1. Versucht, den Knoten neu zu starten.
  2. AKS führt ein Reimaging des Knotens durch, falls der Neustart nicht erfolgreich war.
  3. Wenn das Reimaging nicht erfolgreich durchgeführt wurde und es sich um einen Linux-Knoten handelt, wird der Knoten von AKS erneut bereitgestellt.

AKS-Techniker prüfen alternative Abhilfemaßnahmen, wenn die automatische Reparatur nicht erfolgreich ist.

Hinweis

Eine automatische Reparatur wird nicht ausgelöst, wenn die folgenden Taints auf dem Knoten vorhanden sind: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

Der gesamte Prozess der automatischen Reparatur kann bis zu einer Stunde dauern. AKS führt maximal 3 Wiederholungen für jeden Schritt aus.

Automatische Knotenentladung

Geplante Ereignisse können auf den zugrunde liegenden virtuellen Computern (VMs) in einem Ihrer Knotenpools auftreten. Bei Spot-Knotenpools können geplante Ereignisse zu einem vorzeitigen Knotenereignis für den Knoten führen. Bestimmte Knotenereignisse wie Preempt bewirken, dass bei der AKS-Knotenentladung versucht wird, den betroffenen Knoten abzusperren und zu entladen. Dieser Prozess ermöglicht die Neuplanung für alle betroffenen Workloads auf diesem Knoten. Sie können feststellen, dass der Knoten aufgrund von "remediator.kubernetes.azure.com/unschedulable"einen Taint mit "kubernetes.azure.com/scalesetpriority: spot"empfängt.

In der folgenden Tabelle sind die Knotenereignisse und die Aktionen aufgeführt, die bei der automatischen AKS-Knotenentladung erfolgen:

Ereignis BESCHREIBUNG Aktion
Freeze Es ist geplant, die VM mehrere Sekunden anzuhalten. Der Prozessor und die Netzwerkverbindung werden möglicherweise angehalten, es gibt jedoch keine Auswirkungen auf den Arbeitsspeicher oder geöffnete Dateien. Keine Aktion.
Reboot Die VM ist für einen Neustart geplant. Der nicht persistente Arbeitsspeicher der VM geht verloren. Keine Aktion.
Erneute Bereitstellung Die VM ist für eine Verschiebung auf einen anderen Knoten geplant. Die kurzlebigen Datenträger der VM gehen verloren. Absperren und Entladen.
Preempt Die Spot-VM wird gelöscht. Die kurzlebigen Datenträger der VM gehen verloren. Absperren und Ausgleichen
Terminate Die VM ist für einen Neustart geplant. Absperren und Entladen.

Einschränkungen

Der AKS kann in vielen Fällen ermitteln, ob ein Knoten fehlerhaft ist, und er kann dann versuchen, das Problem zu beheben. Es gibt jedoch Fälle, in denen der AKS das Problem entweder nicht beheben oder erkennen kann, dass ein Problem vorhanden ist. So kann der AKS beispielsweise in den folgenden Beispielszenarien keine Probleme erkennen:

  • Ein Knotenstatus wird aufgrund eines Fehlers in der Netzwerkkonfiguration nicht gemeldet.
  • Ein Knoten konnte zunächst nicht als fehlerfreier Knoten registriert werden.

Node Autodrain ist ein Dienst nach dem Prinzip „beste Leistung“ und es kann nicht garantiert werden, dass er in allen Szenarien perfekt funktioniert.

Nächste Schritte

Verwenden Sie Verfügbarkeitszonen, um die Hochverfügbarkeit Ihrer AKS-Clusterworkloads zu erhöhen.