Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Aktivieren der automatischen Knoten-Reparatur und untersuchen von Problemen mit dem Zustand des Knotens
Der Knotenzustand bezieht sich auf den Betriebsstatus und die Fähigkeit eines Knotens, Workloads effektiv auszuführen. Ein fehlerfreier Knoten verfügt über die erwartete Konnektivität, ausreichende Ressourcen und kann Pods ohne Unterbrechungen erfolgreich ausführen. Informationen zum Abrufen von Details zu Ihren Knoten finden Sie unter Integritätsstatus Ihrer Knoten anzeigen und Abrufen von Knotenprotokollen für einen verwalteten Knoten mithilfe von kubectl und S3.
Um die Aufrechterhaltung eines einwandfreien Zustands der Knoten zu unterstützen, bietet Amazon EKS den Knoten-Überwachungsagenten und die automatische Knotenreparatur an.
Wichtig
Der Knoten-Überwachungsagente und die Knotenreparatur sind nur in Linux verfügbar. Diese Features sind unter Windows nicht verfügbar.
Knotenüberwachungsagent
Der Knoten-Überwachungsagent liest automatisch Knotenprotokolle, um Zustandsprobleme zu erkennen. Er analysiert Knotenprotokolle, um Fehler zu erkennen und verschiedene Statusinformationen über Worker-Knoten anzuzeigen. Für jede Kategorie der erkannten Probleme, wie beispielsweise Speicher- und Netzwerkprobleme, wird eine dedizierte NodeCondition auf die Worker-Knoten angewendet. Beschreibungen der erkannten Statusprobleme werden im Beobachtbarkeits-Dashboard zur Verfügung gestellt. Weitere Informationen finden Sie unter Probleme mit dem Zustand des Knotens.
Der Knoten-Überwachungsagent ist als Funktion für alle Cluster von Amazon EKS Auto Mode enthalten. Für andere Cluster-Typen können Sie den Überwachungsagenten als Amazon-EKS-Add-On hinzufügen. Weitere Informationen finden Sie unter Erstellung eines Amazon-EKS-Add-Ons.
Automatische Knoten-Reparatur
Die automatische Knotenreparatur ist ein zusätzliches Feature, das den Zustand der Knoten kontinuierlich überwacht, automatisch auf erkannte Probleme reagiert und Knoten nach Möglichkeit ersetzt. Dies unterstützt die Gesamtverfügbarkeit des Clusters mit minimalen manuellen Eingriffen. Wenn eine Zustandsprüfung fehlschlägt, wird der Knoten automatisch gesperrt, sodass keine neuen Pods auf dem Knoten geplant werden.
Die automatische Knotenreparatur kann von sich aus auf den Ready-Zustand des kubelet und aller manuell gelöschten Knotenobjekte reagieren. In Kombination mit dem Knoten-Überwachungsagenten kann die automatische Knotenreparatur auf mehr Zustände reagieren, die anderenfalls nicht erkannt würden. Zu diesen zusätzlichen Zuständen gehören KernelReady, NetworkingReady und StorageReady.
Diese automatische Knotenwiederherstellung behebt automatisch intermittierende Knotenprobleme wie Fehler beim Beitritt zum Cluster, nicht reagierende kubelets und eine zunehmende Zahl von Accelerator- (Geräte-) Fehlern. Die erhöhte Zuverlässigkeit trägt dazu bei, Ausfallzeiten von Anwendungen zu reduzieren und den Cluster-Betrieb zu verbessern. Die automatische Knotenreparatur kann bestimmte gemeldete Probleme wie DiskPressure, MemoryPressure und PIDPressure nicht verarbeiten. Amazon EKS wartet 10 Minuten, bevor es auf AcceleratedHardwareReady NodeConditions reagiert, und 30 Minuten bei allen anderen Bedingungen.
Verwaltete Knotengruppen deaktivieren Knotenreparaturen aus Sicherheitsgründen in zwei Szenarien automatisch. Alle bereits laufenden Reparaturarbeiten werden in beiden Fällen fortgesetzt.
-
Wenn eine Zonenverschiebung für Ihren Cluster über den Application Recovery Controller (ARC) ausgelöst wurde, werden alle nachfolgenden Reparaturvorgänge angehalten.
-
Wenn Ihre Knotengruppe mehr als fünf Knoten umfasst und mehr als 20 % der Knoten in Ihrer Knotengruppe sich in einem fehlerhaften Zustand befinden, werden die Reparaturvorgänge angehalten.
Sie können die automatische Knotenreparatur beim Erstellen oder Bearbeiten einer verwalteten Knotengruppe aktivieren.
-
Bei Verwendung der Amazon-EKS-Konsole aktivieren Sie das Kontrollkästchen Automatische Reparatur von Knoten aktivieren für die verwaltete Knotengruppe. Weitere Informationen finden Sie unter Eine verwaltete Knotengruppe für Ihren Cluster erstellen.
-
Bei Verwendung der AWS-CLI fügen Sie
--node-repair-config enabled=truedem Befehleks create nodegroupodereks update-nodegroup-confighinzu. -
Ein Beispiel für
eksctlClusterConfig, das eine verwaltete Knotengruppe mit automatischer Knotenreparatur verwendet, finden Sie unter 44-node-repair.yamlauf GitHub.
Amazon EKS bietet eine differenziertere Kontrolle über das Verhalten der automatischen Knotenreparatur durch Folgendes:
-
maxUnhealthyNodeThresholdCountundmaxUnhealthyNodeThresholdPercentage-
In diesen Feldern können Sie eine Anzahl oder einen Prozentsatz als Schwellenwert für fehlerhafte Knoten festlegen, ab dem die automatische Knotenreparatur beendet wird. Dadurch erhalten Sie mehr Kontrolle über den „Explosionsradius“ der automatischen Knotenreparatur.
-
Sie können entweder die absolute Anzahl oder den Prozentsatz festlegen, jedoch nicht beides.
-
-
maxParallelNodesRepairedCountundmaxParallelNodesRepairedPercentage-
In diesen Feldern können Sie die maximale Anzahl von Knoten angeben, die gleichzeitig oder parallel repariert werden können, ausgedrückt als Anzahl oder Prozentsatz aller fehlerhaften Knoten. Dadurch erhalten Sie eine differenzierte Kontrolle über das Tempo des Knotenaustauschs.
-
Ähnlich wie beim Schwellenwert für fehlerhafte Knoten können Sie entweder die absolute Anzahl oder den Prozentsatz festlegen, jedoch nicht beides.
-
-
nodeRepairConfigOverrides-
Es handelt sich hierbei um eine komplexe Struktur, die es Ihnen ermöglicht, differenzierte Überschreibungen für bestimmte Reparaturmaßnahmen festzulegen. Diese Überschreibungen steuern die Reparaturmaßnahme und die Reparaturverzögerungszeit, bevor ein Knoten als reparaturbedürftig eingestuft wird.
-
Die spezifischen Felder in dieser Struktur sind:
-
nodeMonitoringCondition: Der vom Knoten-Überwachungsagent gemeldete fehlerhafte Zustand. -
nodeUnhealthyReason: Der Grund, warum der Knoten-Überwachungsagent den Knoten als fehlerhaft identifiziert hat. -
minRepairWaitTimeMins: Die Mindestzeit (in Minuten), die der Reparaturzustand und der Grund für den fehlerhaften Zustand bestehen müssen, bevor der Knoten für eine Reparatur in Frage kommt. -
repairAction: Die Maßnahme, die das Reparatursystem ergreifen soll, wenn die oben genannten Bedingungen erfüllt sind.
-
-
Wenn Sie dieses Feld verwenden, müssen Sie alle Felder in der Struktur angeben. Sie können auch eine Liste dieser Überschreibungen bereitstellen.
-
nodeMonitoringConditionundnodeUnhealthyReasonsind manuelle Texteingaben, die Sie festlegen, um anzugeben, dass Sie vom Standardverhalten des Systems abweichen möchten. -
Mit den Feldern
minRepairWaitTimeMinsundrepairActionkönnen Sie Abweichungen vom Standardverhalten des Systems angeben.
-
Probleme mit dem Zustand des Knotens
In den folgenden Tabellen werden Knotenintegritätsprobleme beschrieben, die vom Knoten-Überwachungsagenten erkannt werden können. Es gibt zwei Arten von Problemen:
-
Zustand – Ein schwerwiegendes Problem, das eine Behebungsmaßnahme wie den Austausch einer Instance oder einen Neustart erfordert. Wenn die automatische Reparatur aktiviert ist, führt Amazon EKS eine Reparaturmaßnahme durch, entweder einen Knotenaustausch oder einen Neustart. Weitere Informationen finden Sie unter Knotenzustände.
-
Ereignis – Ein vorübergehendes Problem oder eine suboptimale Knotenkonfiguration. Es erfolgt keine automatische Reparatur. Weitere Informationen finden Sie unter Knotenereignisse.
Integritätsprobleme des Kernelknotens
Der Überwachungszustand ist KernelReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung |
|---|---|---|
|
ForkFailedOutOfPID |
Bedingung |
Ein Fork- oder Exec-Aufruf ist fehlgeschlagen, da dem System Prozess-IDs oder Speicherplatz fehlen. Dies kann durch Zombie-Prozesse oder einen Mangel an physischem Speicher verursacht werden. |
|
AppBlocked |
Ereignis |
Die Aufgabe wurde für einen längeren Zeitraum aus der Planung ausgeschlossen, was in der Regel darauf zurückzuführen ist, dass sie bei der Eingabe oder Ausgabe blockiert wurde. |
|
AppCrash |
Ereignis |
Eine Anwendung auf dem Knoten ist abgestürzt. |
|
ApproachingKernelPidMax |
Ereignis |
Die Anzahl der Prozesse nähert sich der maximalen Anzahl von PIDs, die gemäß der aktuellen Einstellung von kernel.pid_max verfügbar sind. Danach können keine weiteren Prozesse mehr gestartet werden. |
|
ApproachingMaxOpenFiles |
Ereignis |
Die Anzahl der geöffneten Dateien nähert sich der maximalen Anzahl möglicher geöffneter Dateien gemäß den aktuellen Kernel-Einstellungen. Danach wird das Öffnen neuer Dateien fehlschlagen |
|
ConntrackExceededKernel |
Ereignis |
Die Verbindungsverfolgung hat das Maximum für den Kernel überschritten, und es konnten keine neuen Verbindungen hergestellt werden, was zu Paketverlusten führen kann. |
|
ExcessiveZombieProcesses |
Ereignis |
Es sammeln sich zahlreiche Prozesse, die nicht vollständig wiederhergestellt werden können. Dies weist auf Anwendungsprobleme hin und kann dazu führen, dass die Grenzen der Systemprozesse erreicht werden. |
|
KernelBug |
Ereignis |
Ein Kernel-Fehler wurde vom Linux-Kernel selbst erkannt und gemeldet. Dieser kann jedoch manchmal durch Knoten mit hoher CPU- oder Speicherauslastung verursacht werden, was zu einer verzögerten Ereignisverarbeitung führt. |
|
LargeEnvironment |
Ereignis |
Die Anzahl der Umgebungsvariablen für diesen Prozess ist größer als erwartet. Dies kann möglicherweise durch viele Services verursacht werden, bei denen „enableServiceLinks“ auf „true“ gesetzt ist, was zu Leistungsproblemen führen kann. |
|
RapidCron |
Ereignis |
Ein Cron-Auftrag wird auf diesem Knoten schneller als alle fünf Minuten ausgeführt. Dies kann die Leistung beeinträchtigen, wenn der Auftrag erhebliche Ressourcen verbraucht. |
|
SoftLockup |
Ereignis |
Die CPU ist für eine bestimmte Zeit blockiert. |
Probleme mit der Integrität von Netzwerkknoten
Der Überwachungszustand ist NetworkingReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung |
|---|---|---|
|
InterfaceNotRunning |
Bedingung |
Diese Schnittstelle scheint nicht zu funktionieren oder es liegen Netzwerkprobleme vor. |
|
InterfaceNotUp |
Bedingung |
Diese Schnittstelle scheint derzeit nicht verfügbar zu sein oder es liegen Netzwerkprobleme vor. |
|
IPAMDNotReady |
Bedingung |
IPAMD kann keine Verbindung zum API-Server herstellen. |
|
IPAMDNotRunning |
Bedingung |
Der |
|
MissingLoopbackInterface |
Bedingung |
Die Loopback-Schnittstelle fehlt in dieser Instance, was zu einem Ausfall von Services führt, die von der lokalen Konnektivität abhängig sind. |
|
BandwidthInExceeded |
Ereignis |
Pakete wurden in die Warteschlange gestellt oder verworfen, da die eingehende Gesamtbandbreite das Maximum für die Instance überschritten hat. |
|
BandwidthOutExceeded |
Ereignis |
Pakete wurden in die Warteschlange gestellt oder verworfen, da die ausgehende Gesamtbandbreite das Maximum für die Instance überschritten hat. |
|
ConntrackExceeded |
Ereignis |
Die Verbindungsverfolgung hat das Maximum für die Instance überschritten und es konnten keine neuen Verbindungen hergestellt werden, was zu Paketverlusten führen kann. |
|
IPAMDNoIPs |
Ereignis |
IPAM-D hat keine IP-Adressen mehr. |
|
IPAMDRepeatedlyRestart |
Ereignis |
Es sind mehrere Neustarts des IPAMD-Services aufgetreten. |
|
KubeProxyNotReady |
Ereignis |
Kube-proxy konnte die Ressourcen nicht überwachen oder auflisten. |
|
LinkLocalExceeded |
Ereignis |
Pakete wurden verworfen, da die PPS des Datenverkehrs zu lokalen Proxy- Services das Maximum der Netzwerkschnittstelle überschritten hat. |
|
MissingDefaultRoutes |
Ereignis |
Es fehlen Standard- Weiterleitungsregeln. |
|
MissingIPRules, MissingIPRoutes |
Ereignis |
In der Routing-Tabelle fehlen Weiterleitungsregeln für die folgenden Pod-IPs. |
|
NetworkSysctl |
Ereignis |
Die sysctl-Einstellungen des Netzwerks dieses Knotens sind möglicherweise nicht korrekt. |
|
PortConflict |
Ereignis |
Wenn ein Pod hostPort verwendet, kann er iptables-Regeln schreiben, welche die bereits gebundenen Ports des Hosts überschreiben und möglicherweise den Zugriff des API-Servers auf |
|
PPSExceeded |
Ereignis |
Pakete wurden in die Warteschlange gestellt oder verworfen, da die bidirektionale PPS das Maximum für die Instance überschritten hat. |
|
UnexpectedRejectRule |
Ereignis |
In den iptables wurde eine unerwartete |
Integritätsprobleme der Neuron-Knoten
Der Überwachungszustand ist AcceleratedHardwareReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung |
|---|---|---|
|
NeuronDMAError |
Bedingung |
Bei einer DMA-Engine ist ein nicht behebbarer Fehler aufgetreten. |
|
NeuronHBMUncorrectableError |
Bedingung |
Bei einem HBM ist ein nicht korrigierbarer Fehler aufgetreten und es wurden falsche Ergebnisse ausgegeben. |
|
NeuronNCUncorrectableError |
Bedingung |
Ein nicht korrigierbarer Neuron Core-Speicherfehler wurde erkannt. |
|
NeuronSRAMUncorrectableError |
Bedingung |
Ein On-Chip-SRAM hat einen Paritätsfehler festgestellt und unkorrekte Ergebnisse erzeugt. |
Probleme mit der Integrität von NVIDIA-Knoten
Wenn die automatische Reparatur aktiviert ist, beginnen die aufgeführten Reparaturaktionen 10 Minuten, nachdem das Problem erkannt wurde. Weitere Informationen zu XID-Fehlern finden Sie unter XID-Fehler
Der Überwachungszustand ist AcceleratedHardwareReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung | Reparaturmaßnahme |
|---|---|---|---|
|
NvidiaDoubleBitError |
Bedingung |
Der GPU-Treiber hat einen doppelten Bit-Fehler erzeugt. |
Ersetzen |
|
NvidiaNVLinkError |
Bedingung |
Der GPU-Treiber hat NVLink-Fehler gemeldet. |
Ersetzen |
|
NvidiaXID13Error |
Bedingung |
Es liegt eine Grafik-Engine-Ausnahme vor. |
Neustart |
|
NvidiaXID31Error |
Bedingung |
Es liegen vermutlich Hardware-Probleme vor. |
Neustart |
|
NvidiaXID48Error |
Bedingung |
Der Treiber meldet Doppelbit-ECC-Fehler. |
Neustart |
|
NvidiaXID63Error |
Bedingung |
Es liegt eine Seitenlöschung oder Zeilenneuzuordnung vor. |
Neustart |
|
NvidiaXID64Error |
Bedingung |
Beim Versuch, eine Seite zu löschen oder eine Knoten-Neuzuordnung durchzuführen, treten Fehler auf. |
Neustart |
|
NvidiaXID74Error |
Bedingung |
Es liegt ein Problem mit einer Verbindung von der GPU zu einer anderen GPU oder einem NVSwitch über NVLink vor. Dies kann auf einen Hardware-Fehler der Verbindung selbst oder auf ein Problem mit dem Gerät am anderen Ende der Verbindung hindeuten. |
Ersetzen |
|
NvidiaXID79Error |
Bedingung |
Der GPU-Treiber hat versucht, über seine PCI Express-Verbindung auf die GPU zuzugreifen, und festgestellt, dass die GPU nicht erreichbar ist. |
Ersetzen |
|
NvidiaXID94Error |
Bedingung |
Es liegen ECC-Speicherfehler vor. |
Neustart |
|
NvidiaXID95Error |
Bedingung |
Es liegen ECC-Speicherfehler vor. |
Neustart |
|
NvidiaXID119Error |
Bedingung |
Das GSP hat bei der Beantwortung von RPC-Anfragen von anderen Bits im Treiber eine Zeitüberschreitung verursacht. |
Ersetzen |
|
NvidiaXID120Error |
Bedingung |
Das GSP hat rechtzeitig geantwortet, jedoch mit einem Fehler. |
Ersetzen |
|
NvidiaXID121Error |
Bedingung |
C2C bezeichnet eine Chip-Verbindung. Sie ermöglicht die gemeinsame Nutzung von Speicher zwischen CPUs, Beschleunigern und weiteren Komponenten. |
Ersetzen |
|
NvidiaXID140Error |
Bedingung |
Der GPU-Treiber hat möglicherweise nicht korrigierbare Fehler im GPU-Speicher festgestellt, die dazu führen, dass der GPU-Treiber die Seiten nicht mehr für die dynamische Seitenoffline-Funktion oder die Zeilen-Neuzuordnung markieren kann. |
Ersetzen |
|
NvidiaPageRetirement |
Ereignis |
Der GPU-Treiber hat eine Speicherseite zur Außerbetriebnahme markiert. Dies kann auftreten, wenn ein einzelner Doppel-Bit-Fehler oder zwei Einzel-Bit-Fehler an derselben Adresse auftreten. |
Keine |
|
NvidiaXID[Code]Warning |
Ereignis |
Jedes Auftreten von XIDs, die nicht in dieser Liste definiert sind, führt zu diesem Ereignis. |
Keine |
|
DCGMError |
Bedingung |
Die Verbindung zum Host-Prozess des Data Center GPU Manager (DCGM) wurde unterbrochen oder konnte nicht hergestellt werden. |
Keine |
|
DCGMDiagnosticError |
Bedingung |
Bei der Ausführung der aktiven Diagnose des DCGM ist ein Problem aufgetreten. |
Keine |
|
DCGMDiagnosticFailure |
Bedingung |
Ein Testfall aus der Test-Suite für die aktive DCGM-Diagnose ist fehlgeschlagen. |
Keine |
Probleme mit der Integrität von Laufzeitknoten
Der Überwachungszustand ist ContainerRuntimeReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung |
|---|---|---|
|
PodStuckTerminating |
Bedingung |
Ein Pod ist oder war über einen längeren Zeitraum hinweg blockiert. Dies kann auf CRI-Fehler zurückzuführen sein, die den Fortschritt des Pod-Status verhindern. |
|
%sRepeatedRestart |
Ereignis |
Neustarts aller systemd- Services auf dem Knoten (formatiert unter Verwendung des großgeschriebenen Einheitennamens). |
|
ContainerRuntimeFailed |
Ereignis |
Die Container-Laufzeit konnte keinen Container erstellen. Dies hängt wahrscheinlich mit einem der gemeldeten Probleme zusammen, wenn es wiederholt auftritt. |
|
KubeletFailed |
Ereignis |
Der kubelet ist in einen fehlerhaften Zustand übergegangen. |
|
LivenessProbeFailures |
Ereignis |
Es wurde ein Fehler bei der Aktivitätsprüfung erkannt, der bei wiederholtem Auftreten möglicherweise auf Probleme mit dem Anwendungscode oder unzureichende Timeout-Werte hinweist. |
|
ReadinessProbeFailures |
Ereignis |
Es wurde ein Fehler bei der Bereitschaftsprüfung erkannt, der bei wiederholtem Auftreten möglicherweise auf Probleme mit dem Anwendungscode oder unzureichende Timeout-Werte hinweist. |
|
ServiceFailedToStart |
Ereignis |
Eine systemd-Einheit konnte nicht gestartet werden |
Probleme mit der Integrität von Speicherknoten
Der Überwachungszustand ist StorageReady für Probleme in der folgenden Tabelle mit dem Schweregrad „Zustand“.
| Name | Schweregrad | Beschreibung |
|---|---|---|
|
XFSSmallAverageClusterSize |
Bedingung |
Die durchschnittliche Cluster-Größe von XFS ist gering, was auf eine übermäßige Fragmentierung des freien Speicherplatzes hindeutet. Dadurch kann die Dateierstellung trotz verfügbarer Inodes oder freien Speicherplatzes verhindert werden. |
|
EtcHostsMountFailed |
Ereignis |
Die Einbindung des vom Kubelet generierten |
|
IODelays |
Ereignis |
In einem Prozess wurde eine Eingabe- oder Ausgabeverzögerung festgestellt, die bei übermäßiger Dauer auf eine unzureichende Eingabe-Ausgabe-Bereitstellung hindeuten könnte. |
|
KubeletDiskUsageSlow |
Ereignis |
Kubelet meldet beim Versuch, auf das Dateisystem zuzugreifen, eine langsame Festplattennutzung, was möglicherweise auf unzureichende Festplatteneingabe/-ausgabe oder Probleme mit dem Dateisystem hinweist. |