Helfen Sie mit, diese Seite zu verbessern
Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.
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.
Beheben von Problemen in Amazon EKS Connector
Dieses Thema behandelt einige der häufigsten Fehler, die bei der Verwendung des Amazon EKS Connectors auftreten können, einschließlich Anleitungen zu deren Behebung und Umgehungen.
Grundlegende Fehlersuche
In diesem Abschnitt werden Schritte zur Diagnose eines nicht eindeutigen Problems beschrieben.
Prüfen Sie den Status von Amazon EKS Connector
Überprüfen Sie den Status von Amazon EKS Connector.
kubectl get pods -n eks-connector
Überprüfen Sie die Protokolle des Amazon-EKS-Connectors
Der Amazon-EKS-Connector Pod besteht aus drei Containern. Führen Sie die folgenden Befehle aus, um vollständige Protokolle für alle diese Container abzurufen, damit Sie sie überprüfen können:
-
connector-init
kubectl logs eks-connector-0 --container connector-init -n eks-connector kubectl logs eks-connector-1 --container connector-init -n eks-connector
-
connector-proxy
kubectl logs eks-connector-0 --container connector-proxy -n eks-connector kubectl logs eks-connector-1 --container connector-proxy -n eks-connector
-
connector-agent
kubectl exec eks-connector-0 --container connector-agent -n eks-connector -- cat /var/log/amazon/ssm/amazon-ssm-agent.log kubectl exec eks-connector-1 --container connector-agent -n eks-connector -- cat /var/log/amazon/ssm/amazon-ssm-agent.log
Bringen Sie den effektiven Clusternamen in Erfahrung
Amazon-EKS-Cluster werden von clusterName
innerhalb eines einzigen AWS -Kontos und einer AWS-Region-Region eindeutig identifiziert. Wenn Sie über mehrere verbundene Cluster in Amazon EKS verfügen, können Sie bestätigen, bei welchem Amazon-EKS-Cluster der aktuelle Kubernetes-Cluster registriert ist. Geben Sie dafür Folgendes ein, um den clusterName
des aktuellen Clusters herauszufinden.
kubectl exec eks-connector-0 --container connector-agent -n eks-connector \ -- cat /var/log/amazon/ssm/amazon-ssm-agent.log | grep -m1 -oE "eks_c:[a-zA-Z0-9_-]+" | sed -E "s/^.*eks_c:([a-zA-Z0-9_-]+)_[a-zA-Z0-9]+.*$/\1/" kubectl exec eks-connector-1 --container connector-agent -n eks-connector \ -- cat /var/log/amazon/ssm/amazon-ssm-agent.log | grep -m1 -oE "eks_c:[a-zA-Z0-9_-]+" | sed -E "s/^.*eks_c:([a-zA-Z0-9_-]+)_[a-zA-Z0-9]+.*$/\1/"
Verschiedene Befehle
Die folgenden Befehle sind nützlich, um Informationen abzurufen, die Sie zur Behebung von Problemen benötigen.
-
Verwenden Sie den folgenden Befehl, um Bilder zu sammeln, die von Pods im Amazon EKS Connector verwendet werden.
kubectl get pods -n eks-connector -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n'
-
Verwenden Sie den folgenden Befehl, um die Knotennamen zu ermitteln, auf denen Amazon-EKS-Connector ausgeführt wird.
kubectl get pods -n eks-connector -o jsonpath="{.items[*].spec.nodeName}" | tr -s '[[:space:]]' '\n'
-
Führen Sie den folgenden Befehl aus, um Ihre Kubernetes-Client- und Server-Versionen abzurufen.
kubectl version
-
Führen Sie den folgenden Befehl aus, um Informationen zu Ihren Knoten abzurufen.
kubectl get nodes -o wide --show-labels
Helm-Ausgabe: 403 Forbidden
Wenn Sie beim Ausführen von Helm-Installationsbefehlen die folgende Fehlermeldung erhalten haben:
Error: INSTALLATION FAILED: unexpected status from HEAD request to https://public.ecr.aws/v2/eks-connector/eks-connector-chart/manifests/0.0.6: 403 Forbidden
Sie können die folgende Zeile ausführen, um das Problem zu beheben:
docker logout public.ecr.aws
Konsolenfehler: Der Cluster steckt im Status „Ausstehend“ fest
Wenn der Cluster in dem Pending
Status auf der Amazon EKS-Konsole hängen bleibt, nachdem Sie ihn registriert haben, kann das daran liegen, dass der Amazon EKS-Connector den Cluster AWS noch nicht erfolgreich verbunden hat. Für einen registrierten Cluster bedeutet der Pending
-Zustand, dass die Verbindung nicht erfolgreich hergestellt wurde. Um dieses Problem zu lösen, stellen Sie sicher, dass Sie das Manifest auf den Kubernetes-Ziel-Cluster angewendet haben. Wenn Sie es auf den Cluster angewendet haben, der Cluster sich aber immer noch im Pending
-Zustand befindet, ist eks-connector
-StatefulSet möglicherweise fehlerhaft. Informationen zum Beheben dieses Problems finden Sie in diesem Thema unter Amazon EKS-Connector-Pods stürzen laufend ab .
Konsolenfehler: User
“system:serviceaccount:eks-connector:eks-connector” can't impersonate resource
“users” in API group “”
im Cluster-Bereich
Der Amazon EKS Connector verwendet Kubernetes-Benutzeridentitätswechseleks-connector
Dienstkonto auf die Kubernetes API zugreift, muss die Erlaubnis erteilt werden, sich als der entsprechende Kubernetes Benutzer mit einem IAM-ARN als Benutzernamen auszugeben. Kubernetes In den folgenden Beispielen wird der IAM-ARN einem Kubernetes-Benutzer zugeordnet.
-
Der IAM-Benutzer
aus dem AWS Kontojohn
ist einem Benutzer zugeordnet. Kubernetes Bewährte Methoden für IAM empfehlen, dass Sie Rollen statt Benutzern Berechtigungen gewähren.111122223333
arn:aws:iam::
111122223333
:user/john
-
Die IAM-Rolle
aus dem AWS Kontoadmin
ist einem Benutzer zugeordnet: Kubernetes111122223333
arn:aws:iam::
111122223333
:role/admin
Das Ergebnis ist ein IAM-Rollen-ARN anstelle des AWS STS Sitzungs-ARN.
Anweisungen zum Konfigurieren der ClusterRole
und ClusterRoleBinding
, um dem eks-connector
-Servicekonto die Berechtigung zu erteilen, sich als zugeordneter Benutzer auszugeben, finden Sie unter Gewähren des Zugriffs für einen IAM-Prinzipal zum Anzeigen von Kubernetes-Ressource eines Clusters. Stellen Sie sicher, dass %IAM_ARN%
in der Vorlage durch den IAM-ARN des AWS Management Console -IAM-Prinzipals ersetzt wird.
Konsolenfehler: [...] is forbidden: User [...] cannot list
resource “[...] in API group”
im Cluster-Bereich
Betrachten Sie das folgende Problem. Der Amazon EKS-Connector hat erfolgreich die Identität des anfordernden AWS Management Console IAM-Prinzipals im Zielcluster angenommen. Kubernetes Der imitierte Prinzipal hat jedoch keine RBAC-Berechtigung für Kubernetes-API-Vorgänge.
Um dieses Problem zu beheben, gibt es zwei Methoden, um zusätzlichen Benutzern Berechtigungen zu erteilen. Wenn Sie „eks-connector“ zuvor über Helm-Chart installiert haben, können Sie Benutzern ganz einfach Zugriff gewähren, indem Sie den folgenden Befehl ausführen. Ersetzen Sie userARN1
und userARN2
durch eine Liste der ARNs der IAM-Rollen, um Zugriff auf die Kubernetes-Ressourcen zu gewähren:
helm upgrade eks-connector oci://public.ecr.aws/eks-connector/eks-connector-chart \ --reuse-values \ --set 'authentication.allowedUserARNs={userARN1,userARN2}'
Als Cluster-Administrator können Sie auch einzelnen Kubernetes-Benutzern die entsprechende Stufe von RBAC-Berechtigungen gewähren. Weitere Informationen und Beispiele finden Sie unter Gewähren des Zugriffs für einen IAM-Prinzipal zum Anzeigen von Kubernetes-Ressource eines Clusters.
Konsolenfehler: Amazon EKS kann nicht mit Ihrem Kubernetes-Cluster-API-Server kommunizieren. Der Cluster muss sich im ACTIVE-Status befinden, um eine erfolgreiche Verbindung zu erreichen. Try again in few minutes. (Versuchen Sie es in ein paar Minuten erneut.)
Wenn der Amazon-EKS-Service nicht mit dem Amazon EKS-Connector im Zie-Cluster kommunizieren kann, kann dies einen der folgenden Gründe haben:
-
Der Amazon-EKS-Connector im Ziel-Cluster ist fehlerhaft.
-
Schlechte Konnektivität oder eine unterbrochene Verbindung zwischen dem Ziel-Cluster und der AWS-Region.
Um dieses Problem zu beheben, überprüfen Sie die Amazon-EKS-Connector-Protokolle. Wenn kein Fehler für den Amazon-EKS-Connector angezeigt wird, versuchen Sie die Verbindung nach einigen Minuten erneut. Wenn Sie regelmäßig hohe Latenz oder unregelmäßige Konnektivität für den Zielcluster feststellen, sollten Sie erwägen, den Cluster erneut bei einem Cluster zu registrieren, der sich in Ihrer AWS-Region Nähe befindet.
Amazon EKS-Connector-Pods stürzen laufend ab
Es gibt viele Gründe, die dazu führen können, dass ein Amazon-EKS-Connector Pod in den CrashLoopBackOff
-Status übergeht. Dieses Problem betrifft wahrscheinlich den connector-init
-Container. Prüfen Sie den Status von Amazon-EKS-Connector Pod.
kubectl get pods -n eks-connector
Eine Beispielausgabe sieht wie folgt aus.
NAME READY STATUS RESTARTS AGE
eks-connector-0 0/2 Init:CrashLoopBackOff 1 7s
Wenn Ihre Ausgabe der vorherigen Ausgabe ähnlich ist, lesen Sie Überprüfen Sie die Protokolle des Amazon-EKS-Connectors, um das Problem zu beheben.
Failed to initiate eks-connector:
InvalidActivation
Wenn Sie den Amazon-EKS-Connector zum ersten Mal starten, registriert er ein activationId
und activationCode
bei Amazon Web Services. Die Registrierung schlägt möglicherweise fehl, was dazu führen kann, dass der connector-init
-Container mit einem Fehler ähnlich dem folgenden abstürzt.
F1116 20:30:47.261469 1 init.go:43] failed to initiate eks-connector: InvalidActivation:
Berücksichtigen Sie die folgenden Ursachen und empfohlenen Korrekturen, um dieses Problem zu beheben:
-
Die Registrierung ist möglicherweise fehlgeschlagen, da
activationId
undactivationCode
nicht in Ihrer Manifest-Datei enthalten sind. Stellen Sie in diesem Fall sicher, dass es sich um die richtigen Werte handelt, die von derRegisterCluster
-API-Operation zurückgegeben wurden, und dass sichactivationCode
in der Manifest-Datei befindet. DeractivationCode
wird zu Kubernetes-Geheimnissen hinzugefügt, daher muss erbase64
-codiert sein. Weitere Informationen finden Sie unter Schritt 1: Registrieren des Clusters. -
Die Registrierung ist möglicherweise fehlgeschlagen, da Ihre Aktivierung abgelaufen ist. Dies liegt daran, dass Sie den Amazon-EKS-Connector aus Sicherheitsgründen innerhalb von drei Tagen nach der Registrierung des Clusters aktivieren müssen. Um dieses Problem zu lösen, stellen Sie sicher, dass Sie vor Ablaufdatum und -uhrzeit das Amazon-EKS-Connector-Manifest auf den Kubernetes-Ziel-Cluster angewendet haben. Um das Ablaufdatum der Aktivierung zu bestätigen, rufen Sie die
DescribeCluster
-API-Operation auf.aws eks describe-cluster --name
my-cluster
In der folgenden Beispielantwort wird das Ablaufdatum und die Uhrzeit als
2021-11-12T22:28:51.101000-08:00
aufgezeichnet.{ "cluster": { "name": "
my-cluster
", "arn": "arn:aws:eks:region
:111122223333
:cluster/my-cluster
", "createdAt": "2021-11-09T22:28:51.449000-08:00", "status": "FAILED", "tags": { }, "connectorConfig": { "activationId": "00000000-0000-0000-0000-000000000000", "activationExpiry": "2021-11-12T22:28:51.101000-08:00", "provider": "OTHER", "roleArn": "arn:aws:iam::111122223333
:role/my-connector-role
" } } }Wenn das
activationExpiry
erreicht wurde, melden Sie den Cluster ab und registrieren Sie ihn erneut. Dadurch wird eine neue Aktivierung generiert.
Im Cluster-Knoten fehlt die ausgehende Konnektivität
Um ordnungsgemäß zu funktionieren, benötigt der Amazon-EKS-Connector eine ausgehende Konnektivität zu mehreren AWS -Endpunkten. Sie können einen privaten Cluster ohne ausgehende Konnektivität nicht mit einem Ziel- AWS-Region verbinden. Um dieses Problem zu lösen, müssen Sie die erforderliche ausgehende Konnektivität hinzufügen. Weitere Informationen zu den Anforderungen für Konnektoren finden Sie unter Überlegungen zum Amazon EKS Connector.
Amazon-EKS-Connectors Pods befinden sich im ImagePullBackOff
-Zustand
Wenn Sie den get pods
-Befehl ausführen und sich Pods im ImagePullBackOff
-Zustand befinden, können diese nicht ordnungsgemäß funktionieren. Wenn sich die Amazon-EKS-Connectors Pods im ImagePullBackOff
-Zustand befinden, können diese nicht ordnungsgemäß funktionieren. Prüfen Sie den Status Ihres Amazon-EKS-Connectors Pods.
kubectl get pods -n eks-connector
Eine Beispielausgabe sieht wie folgt aus.
NAME READY STATUS RESTARTS AGE
eks-connector-0 0/2 Init:ImagePullBackOff 0 4s
Die standardmäßige Amazon-EKS-Connector-Manifest-Datei verweist auf Images aus der öffentlichen Amazon-ECR-Galerie