

 **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 bei Problemen mit dem Amazon EKS Connector
<a name="troubleshooting-connector"></a>

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
<a name="tsc-steps"></a>

In diesem Abschnitt werden die Schritte zur Diagnose von Problemen mit dem Amazon EKS Connector beschrieben.

### Prüfen Sie den Status von Amazon EKS Connector
<a name="tsc-check"></a>

Um den Status von Amazon EKS Connector zu überprüfen, geben Sie Folgendes ein:

```
kubectl get pods -n eks-connector
```

### Überprüfen Sie die Protokolle des Amazon-EKS-Connectors
<a name="tsc-logs"></a>

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
<a name="tsc-name"></a>

Amazon EKS-Cluster werden `clusterName` innerhalb eines einzigen AWS Kontos und einer AWS Region eindeutig identifiziert. Wenn Sie mehrere verbundene Cluster in Amazon EKS haben, 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
<a name="tsc-misc"></a>

Die folgenden Befehle sind nützlich, um Informationen abzurufen, die Sie zur Behebung von Problemen benötigen.
+ Verwenden Sie den folgenden Befehl, um Images zu sammeln, die von Pods in 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
<a name="w662aac60c33b9"></a>

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
<a name="symp-pending"></a>

Wenn der Cluster nach der Registrierung im `Pending` Status auf der Amazon EKS-Konsole hängen bleibt, 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`-Status, 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 fortlaufend ab](#symp-loop).

## Konsolenfehler: Benutzer „system:serviceaccount:eks-connector:eks-connector“ kann keine Ressourcen-Benutzer in der API-Gruppe auf Cluster-Ebene imitieren.
<a name="symp-imp"></a>

Der Amazon EKS Connector nutzt die Kubernetes-[Benutzer-Identitätsübernahme](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation), um im Namen von [IAM-Prinzipalen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) aus dem AWS-Managementkonsole zu agieren. Jedem Principal, der über das AWS `eks-connector` Dienstkonto auf die Kubernetes-API zugreift, muss die Erlaubnis erteilt werden, sich als der entsprechende Kubernetes-Benutzer mit einem IAM-ARN als Kubernetes-Benutzernamen auszugeben. In den folgenden Beispielen wird der IAM-ARN einem Kubernetes-Benutzer zugeordnet.
+ Der IAM-Benutzer aus dem Konto ist einem Kubernetes-Benutzer zugeordnet. *john* AWS *111122223333* [Bewährte Methoden für IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) empfehlen, dass Sie Rollen statt Benutzern Berechtigungen gewähren.

  ```
   arn:aws: iam::111122223333:user/john
  ```
+ Die IAM-Rolle *admin* aus dem AWS Konto *111122223333* ist einem Kubernetes-Benutzer zugeordnet:

  ```
   arn:aws: iam::111122223333:role/admin
  ```

  Das Ergebnis ist ein IAM-Rollen-ARN anstelle des ARN der AWS STS-Sitzung.

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 Sie Zugriff auf die Anzeige von Kubernetes-Cluster-Ressourcen in einer Amazon-EKS-Konsole.](connector-grant-access.md). Stellen Sie sicher, dass in der Vorlage durch den IAM-ARN des IAM-Prinzipals ersetzt `%IAM_ARN%` wird. AWS-Managementkonsole 

## Konsolenfehler: […​] ist verboten: Benutzer […​] kann Ressource […​] nicht in der API-Gruppe im Cluster-Bereich auflisten
<a name="symp-rbac"></a>

Betrachten Sie das folgende Problem. Der Amazon EKS-Connector hat erfolgreich die Identität des anfordernden AWS-Managementkonsole IAM-Prinzipals im Kubernetes-Zielcluster angenommen. Der imitierte Prinzipal verfügt jedoch nicht über die RBAC-Berechtigung für Kubernetes-API-Operationen.

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 das `userARN1` und `userARN2` durch eine Liste der IAM-Rollen, um Zugriff auf die Kubernetes-Ressourcen zu gewähren: ARNs 

```
helm upgrade eks-connector oci://public.ecr.aws/eks-connector/eks-connector-chart \
    --reuse-values \
    --set 'authentication.allowedUserARNs={userARN1,userARN2}'
```

Alternativ können Sie als Cluster-Administrator einzelnen Kubernetes-Benutzern die entsprechenden RBAC-Berechtigungen zuweisen. Weitere Informationen und Beispiele finden Sie unter [Gewähren Sie Zugriff auf die Anzeige von Kubernetes-Cluster-Ressourcen in einer Amazon-EKS-Konsole.](connector-grant-access.md).

## Konsolenfehler: Amazon EKS kann nicht mit dem API-Server Ihres Kubernetes-Clusters 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.)
<a name="symp-con"></a>

Wenn der Amazon-EKS-Service nicht mit Amazon EKS Connector im Ziel-Cluster kommunizieren kann, kann dies einen der folgenden Gründe haben:
+ Der Amazon-EKS-Connector im Ziel-Cluster ist fehlerhaft.
+ Schlechte Konnektivität oder unterbrochene Verbindung zwischen dem Zielcluster und der Region. AWS 

Um dieses Problem zu beheben, überprüfen Sie die [Amazon-EKS-Connector-Protokolle](#tsc-logs). Wenn kein Fehler für 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 in einer AWS Region zu registrieren, die sich in Ihrer Nähe befindet.

## Amazon-EKS-Connector-Pods stürzen fortlaufend ab
<a name="symp-loop"></a>

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. Überprüfen Sie den Status des Amazon-EKS-Connector-Pods.

```
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](#tsc-logs), um das Problem zu beheben.

## EKS-Connector konnte nicht initiiert werden: InvalidActivation
<a name="symp-regis"></a>

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` und `activationCode` nicht in Ihrer Manifest-Datei enthalten sind. Stellen Sie in diesem Fall sicher, dass es sich um die richtigen Werte handelt, die von der `RegisterCluster`-API-Operation zurückgegeben wurden, und dass sich `activationCode` in der Manifest-Datei befindet. Der `activationCode` wird zu Kubernetes-Geheimnissen hinzugefügt, daher muss er `base64`-codiert sein. Weitere Informationen finden Sie unter [Schritt 1: Registrieren des Clusters](connecting-cluster.md#connector-connecting).
+ 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 beheben, stellen Sie sicher, dass das Manifest für Amazon EKS Connector vor Ablauf des Ablaufdatums und der Ablaufzeit auf den Ziel-Kubernetes-Cluster angewendet wird. 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
<a name="symp-out"></a>

Um ordnungsgemäß zu funktionieren, benötigt der Amazon EKS Connector ausgehende Konnektivität zu mehreren AWS Endpunkten. Sie können einen privaten Cluster ohne ausgehende Konnektivität nicht mit einer Zielregion verbinden. AWS 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](eks-connector.md#connect-cluster-reqts).

## Amazon-EKS-Connectors-Pods befinden sich im `ImagePullBackOff`-Status
<a name="symp-img"></a>

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-Connector-Pods im `ImagePullBackOff`-Status befinden, können sie nicht ordnungsgemäß funktionieren. Überprüfen Sie den Status Ihrer Amazon-EKS-Connector-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 [Amazon ECR Public Gallery](https://gallery.ecr.aws/). Es ist möglich, dass der Ziel-Kubernetes-Cluster keine Images aus der Amazon ECR Public Gallery abrufen kann. Beheben Sie entweder das Image-Abrufproblem der Amazon ECR Public Gallery oder erwägen Sie eine Spiegelung der Images in der privaten Container-Registry Ihrer Wahl.