Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
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.
Fehlerbehebung beim Amazon EKS Hybrid Nodes Gateway
Diese Seite enthält Anleitungen zur Diagnose und Lösung häufiger Probleme mit dem Amazon EKS Hybrid Nodes Gateway. Jeder Abschnitt beschreibt ein Symptom, mögliche Ursachen, Diagnoseschritte und Lösungen. Einzelheiten zum Betrieb finden Sie unterGateway-Betrieb von Amazon EKS Hybrid Nodes.
Pods auf Hybridknoten, die von VPC aus nicht erreichbar sind
Pods, die auf Hybridknoten ausgeführt werden, sind über Ressourcen in der VPC, wie EC2-Instances, Load Balancer oder die Kubernetes-Steuerebene, nicht erreichbar.
Mögliche Ursachen:
-
Einträge in der VPC-Routentabelle fehlen oder verweisen auf die falsche ENI.
-
Der Gateway-Leader-Pod läuft nicht oder hat die Einrichtung noch nicht abgeschlossen.
-
Cilium VTEP ist auf den Hybridknoten nicht aktiviert oder konfiguriert.
-
Source/destination check ist auf der Gateway-EC2-Instance aktiviert.
Diagnoseschritte:
-
Überprüfen Sie die Einträge in der VPC-Routentabelle. Stellen Sie sicher, dass Routen für Ihre Hybrid-Pod-CIDRs existieren und auf die primäre ENI der aktiven Gateway-Instanz verweisen:
aws ec2 describe-route-tables \ --route-table-idsROUTE_TABLE_ID\ --query "RouteTables[].Routes[?DestinationCidrBlock=='[.replaceable]`POD_CIDR`']"Wenn Routen fehlen, überprüfen Sie die Gateway-Protokolle auf Fehler in der Routentabelle. Wenn Routen auf die falsche ENI verweisen, wurde ein Failover möglicherweise nicht erfolgreich abgeschlossen.
-
Überprüfen Sie den Status des Gateway-Pods und die Wahl des Leiters. Vergewissern Sie sich, dass zwei Gateway-Pods laufen und einer den Leader-Lease besitzt:
kubectl get pods -n eks-hybrid-nodes-gateway kubectl get lease -n eks-hybrid-nodes-gatewayWenn kein Pod den Lease besitzt, finden Sie weitere Informationen unterProbleme bei der Wahl von Führungskräften.
-
Überprüfen Sie die Cilium VTEP-Konfiguration auf Hybridknoten. Stellen Sie sicher, dass die
CiliumVTEPConfigRessource vorhanden ist und die Knoten-IP des Leaders enthält:kubectl get ciliumvtepconfig hybrid-gateway -o yamlDie
spec.endpoints[0].tunnelEndpointsollte mit der IP-Adresse des Leader-Gateway-Knotens übereinstimmen. Wenn die Ressource fehlt oder eine veraltete IP hat, hat das Gateway die Leader-Einrichtung möglicherweise nicht abgeschlossen. -
Überprüfen Sie, source/destination ob. Stellen Sie sicher, dass die source/destination Prüfung auf den Gateway-EC2-Instances deaktiviert ist:
aws ec2 describe-instance-attribute \ --instance-idGATEWAY_INSTANCE_ID\ --attribute sourceDestCheckWenn ja
sourceDestChecktrue, deaktivieren Sie es. Siehe Erste Schritte mit dem EKS Hybrid Nodes Gateway.
Webhook-Aufrufe an Hybridknoten schlagen fehl
Der Kubernetes-API-Server kann keine Webhook-Endpunkte erreichen, die auf Hybridknoten ausgeführt werden. Bei Webhook-Zulassungsanfragen kommt es zu einer Zeitüberschreitung oder es treten Verbindungsfehler auf.
Mögliche Ursachen:
-
Das Gateway leitet keinen Verkehr von der Steuerungsebene zu den Hybrid-Pods weiter.
-
Die
CiliumVTEPConfigRessource fehlt oder hat eine veraltete Endpunkt-IP.
Diagnoseschritte:
-
Stellen Sie sicher, dass die Steuerebene die Gateway-Knoten-IP erreichen kann. Die Kontrollebene sendet den Datenverkehr an die VPC-Routentabelle, die ihn an die ENI des Gateways weiterleitet. Vergewissern Sie sich anhand der Schritte unter, dass die Einträge in Pods auf Hybridknoten, die von VPC aus nicht erreichbar sind der VPC-Routentabelle korrekt sind.
-
Überprüfen Sie die CiliumVTEPConfig-Ressource. Stellen Sie sicher, dass die Ressource existiert und mit der Knoten-IP des aktuellen Leaders
tunnelEndpointübereinstimmt:kubectl get ciliumvtepconfig hybrid-gateway -o yamlWenn der Tunnelendpunkt veraltet ist (verweist auf einen früheren Leader), hat das Gateway die Leader-Setup-Sequenz möglicherweise nicht abgeschlossen. Überprüfen Sie die Gateway-Protokolle auf Fehler beim
CiliumVTEPConfigUpsert.
Aktualisierungen der VPC-Routetabellen schlagen fehl
Die Gateway-Protokolle zeigen Fehler im Zusammenhang mit VPC-Routentabellenoperationen, und Routen für Hybrid-Pod-CIDRs werden nicht erstellt oder aktualisiert.
Mögliche Ursachen:
-
Die IAM-Rolle des Gateways verfügt nicht über die erforderlichen EC2-Berechtigungen.
-
Die Routentabellen-IDs in der Konfiguration sind falsch oder die Routentabellen sind nicht vorhanden.
-
Das Gateway kann den EC2-API-Endpunkt nicht erreichen.
Diagnoseschritte:
-
Überprüfen Sie die IAM-Berechtigungen. Das Gateway erfordert die folgenden IAM-Aktionen:
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstancesÜberprüfen Sie die IAM-Rolle, die dem Instanzprofil oder der Pod-Identitätskonfiguration des Gateway-Knotens zugewiesen ist.
-
-
Überprüfen Sie die Routentabellen-IDs in der Konfiguration. Stellen Sie sicher, dass die
ROUTE_TABLE_IDSUmgebungsvariable gültige Routentabellen-IDs in der Gateway-Bereitstellung enthält:kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].env}' | jq .Vergewissern Sie sich, dass die Routentabellen-IDs in Ihrer VPC vorhanden sind:
aws ec2 describe-route-tables --route-table-idsROUTE_TABLE_ID -
Überprüfen Sie die Gateway-Protokolle auf Fehler in der Routentabelle. Suchen Sie nach Fehlermeldungen im Zusammenhang mit Routentabellenoperationen:
kubectl logs -n eks-hybrid-nodes-gatewayLEADER_POD| grep -i "route table"Zu den häufigsten Fehlermeldungen gehören:
-
Failed to verify route table access— Das Gateway kann die Routentabelle nicht beschreiben. Überprüfen Sie die IAM-Berechtigungen und die Routentabellen-IDs. -
Failed to update route tables— Das Gateway kann keine Routen erstellen oder ersetzen. Überprüfen Sie die IAM-Berechtigungen. -
failed to access route table— Die Routentabellen-ID ist möglicherweise falsch oder die IAM-Rolle fehlt.ec2:DescribeRouteTables
-
Gateway-Pods können nicht gestartet werden oder sind fehlerhaft
Gateway-Pods befinden sich im Pending Status CrashLoopBackOffError, oder, oder der Integritätsendpunkt gibt einen Fehler zurück.
Mögliche Ursachen:
-
Erforderliche Umgebungsvariablen (
VPC_CIDR,POD_CIDRS,ROUTE_TABLE_IDS) sind nicht festgelegt. -
Die IP-Weiterleitung ist auf dem Gateway-Knoten nicht aktiviert.
-
Einschränkungen bezüglich der Knotenbezeichnung oder der Anti-Affinität verhindern die Planung.
Diagnoseschritte:
-
Überprüfen Sie die Pod-Protokolle. Sehen Sie sich die Protokolle für den ausgefallenen Pod an, um den Fehler zu identifizieren:
kubectl logs -n eks-hybrid-nodes-gatewayLEADER_POD -
Überprüfen Sie die erforderlichen Umgebungsvariablen. Das Gateway benötigt
NODE_IPVPC_CIDR, undPOD_CIDRS. Wenn welche fehlen, wird das Gateway sofort beendet. Überprüfen Sie die Pod-Spezifikation:kubectl get pod -n eks-hybrid-nodes-gatewayLEADER_POD-o jsonpath='{.spec.containers[0].env}' | jq .-
NODE_IPwird automatischstatus.hostIPin der Pod-Spezifikation festgelegt. Wenn es leer ist, ist der Pod möglicherweise noch nicht für einen Knoten geplant. -
VPC_CIDRundPOD_CIDRSstammen aus den Helm-Werten. Stellen Sie sicher, dass sie richtig eingestellt sind.
-
-
Überprüfen Sie die IP-Weiterleitung. Das Gateway überprüft beim Start, ob die IP-Weiterleitung aktiviert ist, und wird beendet, falls dies nicht der Fall ist. Suchen Sie
IP forwarding is not enabledin den Pod-Logs nach der Fehlermeldung. Aktivieren Sie die IP-Weiterleitung auf dem Knoten:# Check current setting cat /proc/sys/net/ipv4/ip_forward # Enable if not set sudo sysctl -w net.ipv4.ip_forward=1Für eine persistente Einstellung konfigurieren Sie die IP-Weiterleitung über das Kubelet oder fügen Sie
net.ipv4.ip_forward=1zu hinzu./etc/sysctl.d/ -
Überprüfen Sie die Knotenbezeichnung und die Einschränkungen bei der Terminplanung. Die Gateway-Pods benötigen Knoten mit der
hybrid-gateway-node=trueBezeichnung. Pod-Anti-Affinität stellt sicher, dass jeder Pod auf einem separaten Knoten ausgeführt wird. Falls dies bei Pods der Fall istPending, überprüfen Sie, ob Probleme bei der Planung vorliegen:kubectl describe pod -n eks-hybrid-nodes-gatewayLEADER_PODSuchen Sie nach Ereignissen, die auf unzureichende Knoten, fehlende Labels oder Anti-Affinitätskonflikte hinweisen.
Probleme bei der Wahl von Führungskräften
Die Gateway-Pods laufen, aber kein Pod erwirbt den Leader-Leasing, oder es kommt häufig zu Führungswechseln.
Mögliche Ursachen:
-
RBAC-Berechtigungen für Lease-Objekte fehlen.
-
Die Netzwerkkonnektivität zwischen Gateway-Pods und dem Kubernetes-API-Server ist unzuverlässig.
-
Die Parameter für die Wahl des Leiters sind falsch konfiguriert.
Diagnoseschritte:
-
Überprüfen Sie das Lease-Objekt. Stellen Sie sicher, dass der Leasingvertrag existiert, und überprüfen Sie seinen aktuellen Inhaber:
kubectl get lease -n eks-hybrid-nodes-gateway hybrid-gateway-leader -o yamlDas
spec.holderIdentityFeld zeigt den aktuellen Anführer.spec.renewTimeZeigt an, wann der Mietvertrag zuletzt verlängert wurde. WennrenewTimees veraltet ist, hat der Leader möglicherweise die Verbindung zum API-Server verloren. -
Überprüfen Sie die RBAC-Berechtigungen. Das Gateway-Dienstkonto benötigt Berechtigungen zum Abrufen, Erstellen und Aktualisieren von Lease-Objekten im Gateway-Namespace. Überprüfen Sie die Rolle und RoleBinding:
kubectl get role -n eks-hybrid-nodes-gateway kubectl get rolebinding -n eks-hybrid-nodes-gatewayDie Rolle sollte
getcreate, undupdateVerben für dieleasesRessource in dercoordination.k8s.ioAPI-Gruppe enthalten. -
Überprüfen Sie die Pod-Logs auf Leasing-Fehler. Suchen Sie in den Pod-Logs nach Fehlern bei der Wahl von Führungskräften:
kubectl logs -n eks-hybrid-nodes-gatewayLEADER_POD| grep -i "leader\|lease"Häufige Probleme sind unter anderem:
-
Failed to acquire lease— Der Pod kann das Lease-Objekt nicht erstellen oder aktualisieren. Überprüfen Sie die RBAC-Berechtigungen. -
Häufig,
Leadership endedgefolgt vonLeader setup completeNachrichten — Der Leader verliert den Mietvertrag und erwirbt ihn erneut. Dies kann auf eine Netzwerkinstabilität zwischen dem Pod und dem API-Server hinweisen. Erwägen Sie eine Erhöhung--leader-election-lease-duration.
-
-
Überprüfen Sie die Parameter für die Wahl des Führers. Überprüfen Sie die konfigurierten Werte:
kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].args}'Stellen Sie sicher
--leader-election-renew-deadline, dass es weniger als ist--leader-election-lease-duration. Wenn die Frist für die Verlängerung die Leasingdauer überschreitet, verliert der Leader das Leasing, bevor es verlängert werden kann. Weitere Informationen finden Sie unter Abstimmung der Wahl der Spitzenpolitiker.
Häufige Fehlermeldungen
In der folgenden Tabelle sind die Fehlermeldungen, die Sie möglicherweise in den Gateway-Pod-Logs sehen, sowie deren Lösungen aufgeführt.
| Fehlermeldung | Ursache | Auflösung |
|---|---|---|
|
|
Der Kernel-Parameter |
Aktivieren Sie die IP-Weiterleitung über die Kubelet-Konfiguration oder durch Ausführen. |
|
|
Das Gateway kann die VXLAN-Netzwerkschnittstelle nicht erstellen. Dies tritt normalerweise auf, wenn der Pod nicht über die erforderlichen Funktionen verfügt. |
Vergewissern Sie sich, dass die Bereitstellungsspezifikation Folgendes umfasst: |
|
|
Das Gateway kann beim Start keine oder mehrere VPC-Routentabellen beschreiben. |
Stellen Sie sicher, dass die IAM-Rolle über die |
|
|
Das Gateway kann keine Routen in den VPC-Routentabellen erstellen oder ersetzen. |
Stellen Sie sicher, dass die IAM-Rolle über die erforderlichen Berechtigungen verfügt |
|
|
Das Gateway kann den AWS EC2-Client nicht initialisieren oder die primäre ENI der Instance abrufen. |
Stellen Sie sicher, dass die IAM-Rolle über die erforderlichen |
|
|
Die |
Stellen Sie sicher, dass die Pod-Spezifikationssätze |
|
|
Der angegebene Wert für |
Überprüfen Sie den Wert der |
|
|
Die |
Stellen Sie die Werte |
|
|
Der |
Überprüfen Sie den |
|
|
Das Gateway kann die AWS Region nicht aus den Metadaten der EC2-Instanz abrufen. |
Stellen Sie sicher, dass auf den Instance-Metadatendienst (IMDS) zugegriffen werden kann. Alternativ können Sie das |
|
|
Das Gateway kann die Instanz-ID nicht aus den EC2-Instanz-Metadaten abrufen. |
Stellen Sie sicher, dass auf den Instance-Metadatendienst (IMDS) zugegriffen werden kann. Alternativ können Sie das |
|
|
Das |
Stellen Sie sicher, dass der Hybridknoten korrekt registriert ist und der Cilium-Agent läuft. Überprüfen Sie die |
|
|
Dem |
Stellen Sie sicher, dass Cilium IPAM auf dem Hybridknoten korrekt konfiguriert ist. Überprüfen Sie die |
|
|
Das Gateway kann die |
Stellen Sie sicher, dass die CRD im Cluster installiert ist und das Gateway-Dienstkonto über Berechtigungen zur Verwaltung von |
|
|
Der Controller-Runtime-Manager konnte nicht initialisiert werden. |
Suchen Sie in den Pod-Logs nach zusätzlichem Kontext. Zu den häufigsten Ursachen gehören eine ungültige kubeconfig oder die Unfähigkeit, den Kubernetes-API-Server zu erreichen. |
|
|
Das vom Leader gewählte Runnable konnte nicht beim Controller-Manager registriert werden. |
Dies ist normalerweise ein interner Fehler. Suchen Sie in den vollständigen Pod-Logs nach zusätzlichem Kontext und melden Sie das Problem im GitHub Repository |
|
|
Der CiliumNode Reconciler konnte nicht beim Controller-Manager registriert werden. |
Suchen Sie in den Pod-Logs nach zusätzlichem Kontext. Stellen Sie sicher, dass die CiliumNode CRD im Cluster installiert ist. |
|
|
Der Controller-Manager wurde unerwartet beendet. |
Überprüfen Sie die Pod-Logs auf den zugrunde liegenden Fehler. Zu den häufigsten Ursachen gehören der Verlust der Konnektivität zum Kubernetes-API-Server oder ein Portkonflikt bei den Metriken oder Integritätsprüfadressen. |
|
|
Das Gateway kann während der Überprüfung der Startüberprüfung keine bestimmte VPC-Routentabelle beschreiben. |
Stellen Sie sicher, dass die IAM-Rolle über die erforderlichen |
Verwandte Themen
-
Amazon EKS-Gateway für Hybridknoten— Überblick über die Gateway-Architektur und Anwendungsfälle.
-
Erste Schritte mit dem EKS Hybrid Nodes Gateway— Voraussetzungen und Installationsanweisungen.
-
Referenz zur Konfiguration des Amazon EKS Hybrid Nodes Gateways— Vollständige Referenz für Helm-Werte, CLI-Flags und Umgebungsvariablen.
-
Gateway-Betrieb von Amazon EKS Hybrid Nodes— Überwachung, Failover-Verhalten und Anleitung zur Skalierung.