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 unter, 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 bietet 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 zur Bedienung 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 von Ressourcen in der VPC wie EC2-Instances, Load Balancers oder der Kubernetes-Steuerungsebene aus nicht erreichbar.
Mögliche Ursachen:
-
Die Einträge in der VPC-Routing-Tabelle fehlen oder verweisen auf die falsche ENI.
-
Der Gateway-Leader-Pod läuft nicht oder die Einrichtung wurde 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-Routing-Tabelle. Stellen Sie sicher, dass Routen für Ihre Hybrid-Pod-CIDRs existieren und auf die primäre ENI der aktiven Gateway-Instance verweisen:
aws ec2 describe-route-tables \ --route-table-idsROUTE_TABLE_ID\ --query "RouteTables[].Routes[?DestinationCidrBlock=='POD_CIDR']"Wenn Routen fehlen, überprüfen Sie die Gateway-Protokolle auf Fehler in der Routing-Tabelle. Wenn Routen auf die falsche ENI verweisen, wurde ein Failover möglicherweise nicht erfolgreich abgeschlossen.
-
Prüfen Sie den Gateway-Pod-Status 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 Leasingvertrag erfüllt, finden Sie weitere Informationen unterFragen zur Wahl des Vorsitzenden.
-
Überprüfen Sie die Cilium VTEP-Konfiguration auf Hybridknoten. Stellen Sie sicher, dass die
CiliumVTEPConfigRessource existiert 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-Adresse hat, hat das Gateway das Leader-Setup möglicherweise nicht abgeschlossen. -
Überprüfen Sie das source/destination Häkchen. 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 sie. Siehe Erste Schritte mit dem EKS Hybrid Nodes Gateway.
Webhook-Aufrufe an Hybridknoten schlagen fehl
Der Kubernetes-API-Server kann Webhook-Endpunkte, die auf Hybridknoten ausgeführt werden, nicht erreichen. Bei Webhook-Zulassungsanfragen kommt es zu einer Zeitüberschreitung oder es werden Verbindungsfehler zurückgegeben.
Mögliche Ursachen:
-
Das Gateway leitet den Datenverkehr nicht von der Steuerungsebene zu den Hybrid-Pods weiter.
-
Die
CiliumVTEPConfigRessource fehlt oder hat eine veraltete Endpunkt-IP.
Diagnoseschritte:
-
Stellen Sie sicher, dass die Steuerungsebene die IP-Adresse des Gateway-Knotens erreichen kann. Die Steuerungsebene sendet den Datenverkehr an die VPC-Routing-Tabelle, die ihn an die ENI des Gateways weiterleitet. Bestätigen Sie anhand der Schritte unter, ob die Einträge in der VPC-Routing-Tabelle korrekt sind. Pods auf Hybridknoten, die von VPC aus nicht erreichbar sind
-
Überprüfen Sie die Ressource CiliumVTEPConfig. Stellen Sie sicher, dass die Ressource existiert und
tunnelEndpointmit der Knoten-IP des aktuellen Leaders übereinstimmt:kubectl get ciliumvtepconfig hybrid-gateway -o yamlWenn der Tunnelendpunkt veraltet ist (er zeigt 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.
Die Aktualisierung der VPC-Routing-Tabelle schlägt fehl
In den Gateway-Protokollen werden Fehler im Zusammenhang mit den Vorgängen der VPC-Routing-Tabelle angezeigt, 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 Routing-Tabellen-IDs in der Konfiguration sind falsch oder die Routing-Tabellen 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 zugeordnet ist.
-
-
Überprüfen Sie die Routing-Tabellen-IDs in der Konfiguration. Stellen Sie sicher, dass die
ROUTE_TABLE_IDSUmgebungsvariable gültige Routing-Tabellen-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 Routing-Tabellen-IDs in Ihrer VPC vorhanden sind:
aws ec2 describe-route-tables --route-table-idsROUTE_TABLE_ID -
Überprüfen Sie die Gateway-Protokolle auf Routing-Tabellenfehler. Suchen Sie nach Fehlermeldungen im Zusammenhang mit Routingtabellenoperationen:
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 Routing-Tabelle nicht beschreiben. Überprüfen Sie die IAM-Berechtigungen und Routing-Tabellen-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 ID der Routing-Tabelle 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 in CrashLoopBackOff oder im Pending Status, oder der Integritätsendpunkt gibt einen Fehler zurück. Error
Mögliche Ursachen:
-
Die erforderlichen Umgebungsvariablen (
VPC_CIDR,POD_CIDRS,ROUTE_TABLE_IDS) sind nicht festgelegt. -
Die IP-Weiterleitung ist auf dem Gateway-Knoten nicht aktiviert.
-
Einschränkungen bei 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 fehlgeschlagenen 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 auf einem 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, wenn dies nicht der Fall ist. Suchen Sie
IP forwarding is not enabledin den Pod-Protokollen 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=1sie hinzu./etc/sysctl.d/ -
Überprüfen Sie die Knotenbezeichnung und die Zeitplanungsbeschränkungen. Die Gateway-Pods benötigen Knoten mit dem
hybrid-gateway-node=trueLabel. Die Pod-Anti-Affinität stellt sicher, dass jeder Pod auf einem separaten Knoten ausgeführt wird. Wenn dies bei Pods der FallPendingist, überprüfen Sie, ob Planungsprobleme vorliegen:kubectl describe pod -n eks-hybrid-nodes-gatewayLEADER_PODAchten Sie auf Ereignisse, die auf unzureichende Nodes, fehlende Labels oder Anti-Affinitätskonflikte hinweisen.
Fragen zur Wahl des Vorsitzenden
Die Gateway-Pods laufen, aber kein Pod erhält den Leader-Lease, 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 Führers sind falsch konfiguriert.
Diagnoseschritte:
-
Überprüfen Sie das Lease-Objekt. Stellen Sie sicher, dass der Mietvertrag 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, und dieupdateVerben für dieleasesRessource in dercoordination.k8s.ioAPI-Gruppe enthalten. -
Überprüfe die Pod-Logs auf Leasingfehler. Suchen Sie in den Pod-Protokollen nach Fehlern bei der Wahl des Führers:
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 weniger als ist--leader-election-lease-duration. Wenn die Verlängerungsfrist die Mietdauer überschreitet, verliert der Leader den Mietvertrag, bevor er verlängert werden kann. Weitere Informationen finden Sie unter Abstimmung der Wahl der Spitzenpolitiker.
Häufige Fehlermeldungen
In der folgenden Tabelle sind Fehlermeldungen, die möglicherweise in den Gateway-Pod-Protokollen angezeigt werden, und 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 in der Regel auf, wenn dem Pod die entsprechenden Funktionen fehlen. |
Stellen Sie sicher, dass die Bereitstellungsspezifikation |
|
|
Das Gateway kann beim Start keine oder mehrere VPC-Routing-Tabellen beschreiben. |
Stellen Sie sicher, dass die IAM-Rolle über die |
|
|
Das Gateway kann keine Routen in den VPC-Routing-Tabellen erstellen oder ersetzen. |
Stellen Sie sicher, dass die IAM-Rolle über |
|
|
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 entsprechenden |
|
|
Die |
Überprüfen Sie, ob die Pod-Spezifikationssätze |
|
|
Der angegebene Wert |
Ü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-Instance abrufen. |
Stellen Sie sicher, dass auf den Instance-Metadatendienst (IMDS) zugegriffen werden kann. Sie können das |
|
|
Das Gateway kann die Instance-ID nicht aus den EC2-Instance-Metadaten abrufen. |
Stellen Sie sicher, dass auf den Instance-Metadatendienst (IMDS) zugegriffen werden kann. Sie können 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 zum Verwalten von |
|
|
Der Controller-Runtime-Manager konnte nicht initialisiert werden. |
Überprüfen Sie die Pod-Logs auf zusätzlichen 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 in der Regel ein interner Fehler. Überprüfe die vollständigen Pod-Logs auf zusätzlichen Kontext und melde das Problem im GitHub Repository |
|
|
Der CiliumNode Reconiler konnte nicht beim Controller-Manager registriert werden. |
Überprüfen Sie die Pod-Logs auf zusätzlichen Kontext. Stellen Sie sicher, dass die CiliumNode CRD im Cluster installiert ist. |
|
|
Der Controller-Manager wurde unerwartet beendet. |
Überprüfen Sie die Pod-Protokolle 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üf-Bind-Adressen. |
|
|
Das Gateway kann während der Startüberprüfung keine bestimmte VPC-Routing-Tabelle beschreiben. |
Stellen Sie sicher, dass die IAM-Rolle über die |
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— Anleitung zur Überwachung, zum Failover-Verhalten und zur Skalierung.