AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie kann ich Probleme bei der Aktualisierung verwalteter Knotengruppen für Amazon EKS beheben?
Ich versuche, meine von Amazon Elastic Kubernetes Service (Amazon EKS) verwaltete Knotengruppe zu aktualisieren und habe Probleme.
Kurzbeschreibung
Wenn du die von Amazon EKS verwaltete Knotengruppe aktualisierst, erhältst du möglicherweise eine der folgenden Fehlermeldungen:
- "PodEvictionFailure Reached max retries while trying to evict pods from nodes in node group nodegroup-1234"
- "Error: Nodegroup health has issues other than AsgInstanceLaunchFailures, InstanceLimitExceeded, InsufficientFreeAddresses, ClusterUnreachable"
- "Error: InvalidParameterException: Launch template details can't be null for Custom ami type node group"
-oder-
"An error occurred (InvalidParameterException) when calling the UpdateNodegroupVersion operation: You cannot specify the field kubernetesVersion when using custom AMIs"
- "UPDATE_FAILED Resource handler returned message: Requested release version 1.xx is not valid for kubernetes version 1.yy"
Lösung
Um Fehler bei der Aktualisierung von Amazon EKS-verwalteten Knotengruppen zu beheben, folge diesen Schritten zur Problembehandlung.
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhältst, stelle sicher, dass du die neueste AWS CLI-Version verwendest.
PodEvictionFailure Reached max retries while trying to evict pods from nodes in node group nodegroup-1234
Der Fehler PodEvictionFailure tritt auf, wenn das Upgrade nicht alle Pods aus dem Knoten leeren kann. Wenn ein Pod Disruption Budget (PDB) verhindert, dass Pods vom Knoten abgezogen werden, kann dies das Problem verursachen. Wenn eine Anwendung beispielsweise eine PDB von zwei hat, müssen mindestens zwei Pods für diese Anwendung ausgeführt werden.
Um zu überprüfen, ob die Anwendung eine PDB verwendet, führe den folgenden kubectl-Befehl aus:
$ kubectl get pdb —all-namespaces
Wenn du ein PDB verwendest, führe eine der folgenden Aktionen aus:
- Erhöhe die Anzahl der verfügbaren IP-Adressen für die Amazon Elastic Compute Cloud (Amazon EC2)-Knoten, um die Anzahl der Pods zu erhöhen.
- Entferne vorübergehend das PDB.
- Verwende die Option „Update erzwingen“.
Die Option „Update erzwingen“ erkennt PDBs nicht. Aktualisierungen erfolgen unabhängig von PDB-Problemen, indem der Knoten zum Neustart gezwungen wird.
Hinweis: Wenn Pods von einem Kubernetes-Controller nicht auf die Knoten verteilt sind, kann diese Option zu Ausfallzeiten der Anwendungen führen.
Um die Option „Erzwingen“ zu verwenden, führe den AWS-CLI-Befehl ähnlich dem folgenden aus:
$ aws eks update-nodegroup-version --cluster-name cluster-123 --nodegroup-name nodegroup-1234 --force
-oder-
Führe den folgenden eksctl-Befehl aus:
$ eksctl upgrade nodegroup --cluster OneCluster --name managed-ng --force-upgrade
Behebung von PodDisruptionBudget-Bereinigungsfehlern mit CloudWatch Logs-Insights
Du kannst Amazon CloudWatch Logs Insights verwenden, um die Protokolldaten der Amazon EKS-Steuerebene zu durchsuchen. Weitere Informationen findest du unter Analyse von Protokolldaten mit CloudWatch Logs Insights.
Wichtig: Du kannst Protokollereignisse in CloudWatch Logs erst anzeigen, nachdem du die Protokollierung der Steuerebene in einem Cluster aktiviert hast. Bevor du einen Zeitraum für die Ausführung von Abfragen in CloudWatch Logs-Insights auswählst, stelle sicher, dass du die Protokollierung auf Steuerebene aktiviert hast. Weitere Informationen findest du unter Wie kann ich Amazon EKS-Steuerebenenprotokolle aus CloudWatch Logs abrufen?
Führe eine Abfrage ähnlich der folgenden aus, um den Pod zu ermitteln, bei dem die Bereinigung fehlgeschlagen ist, und die Anzahl der Fehler zu ermitteln:
fields @timestamp, @message | stats count(*) as count by objectRef.name | filter @logStream like /audit/ | filter user.username == "eks:node-manager" and requestURI like "eviction" and requestURI like "pod" and responseStatus.code > 400 | sort count desc
Die maximale Anzahl von Wiederholungsversuchen für einen Bereinigungs-Pod beträgt 20. Wenn die Anzahl für einen angezeigten Pod größer als oder gleich 20 Ausfälle ist, ist dies der Pod, bei dem die Bereinigung fehlgeschlagen ist.
Führe die folgende Abfrage aus, um den Budgetnamen für Pod-Unterbrechungen zu ermitteln, der verhindert, dass der vorherige Pod entfernt wird.
filter @logStream like /^kube-apiserver-audit/ | fields @logStream, @timestamp, @message | sort @timestamp desc | filter user.username == "eks:node-manager" and requestURI like "eviction" and requestURI like "pod_name" and responseStatus.code > 400 | limit 999 | display responseObject.details.causes.0.message,objectRef.name,objectRef.namespace,objectRef.resource
Hinweis: Ersetze pod_name durch den Namen deines Pods.
Die Ausgabe enthält eine Meldung ähnlich der folgenden, wobei pod_distruption_budget das Objekt ist, das die Bereinigungsfehler verursacht:
The disruption budget pod_distruption_budget needs 1 healthy pods and has 1 currently
Fehler: Nodegroup health has issues other than AsgInstanceLaunchFailures, InstanceLimitExceeded, InsufficientFreeAddresses, ClusterUnreachable
Wenn du diese Fehlermeldung erhältst, überprüfe die Details der verwalteten Knotengruppe und suche nach den Zustandsproblemen. Weitere Informationen und Problemlösungen findest du unter Fehler bei verwalteten Knotengruppen und in der Amazon EKS-Problem-API-Referenz.
Fehler: InvalidParameterException: Launch template details can't be null for Custom ami type node group
-oder-
An error occurred (InvalidParameterException) when calling the UpdateNodegroupVersion operation: You cannot specify the field kubernetesVersion when using custom AMIs.
Für verwaltete Knotengruppen mit einem benutzerdefinierten AMI musst du eine neue AMI-Version mit der Kubernetes-Version erstellen, auf die du ein Upgrade durchführen möchtest. Gib während des Upgrades die Startvorlage und die Version an.
Wenn du die AWS-CLI verwendest, verwende das Flag --launch-template. Verwende für eksctl das Flag --launch-template-version.
Hinweis: Vermeide es, das Flag**\ --kubernetes-version ** mit diesen Befehlen zu verwenden.
UPDATE_FAILED Resource handler returned message: "Requested release version 1.xx is not valid for kubernetes version 1.yy"
Dieser Fehler tritt auf, wenn die verwaltete Knotengruppe mit dem Amazon EKS-Cluster aus demselben AWS CloudFormation-Stack mit dem UpdateStack-API-Aufruf aktualisiert wird.
CloudFormation versucht, den Stack zurückzusetzen, aber es schlägt fehl, weil der Amazon EKS-Cluster erfolgreich aktualisiert wurde und nicht rückgängig gemacht werden kann. Der Amazon EKS-Cluster kann 1.xx nicht mit 1.yy (z. B. 1.21 und 1.22) abgleichen .
Weitere Informationen zur Behebung des Problems findest du im ersten Fehler, der für die Knotengruppe im CloudFormation-Stack aufgetreten ist. Aktualisiere dann den CloudFormation-Stack erneut.
Weitere Informationen findest du unter Verhalten bei Aktualisierungen verwalteter Knoten.
Ähnliche Informationen
Wie behebe ich Fehler bei der Erstellung von verwalteten Amazon-EKS-Knotengruppen?
Wie behebe ich Fehler bei verwalteten Knotengruppen in einem Amazon EKS-Cluster?
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 8 Monaten
AWS OFFICIALAktualisiert vor 2 Jahren