Warum kann ich keine Verbindung zu meinem Amazon EKS-Cluster herstellen?

Letzte Aktualisierung:23.06.2021

Ich habe einen Amazon-Elastic-Kubernetes-Service-(Amazon-EKS)-Cluster erstellt, kann aber keine Verbindung zu meinem Cluster herstellen.

Kurzbeschreibung

Nachdem Sie Ihren Amazon-EKS-Cluster erstellt haben, müssen Sie Ihre kubeconfig-Datei mit der AWS Command Line Interface (AWS CLI) konfigurieren. Mit dieser Konfiguration können Sie über die kubectl-Befehlszeile eine Verbindung zu Ihrem Cluster herstellen.

Die folgende Auflösung zeigt Ihnen, wie Sie mit dem AWS-CLI-Befehl update-kubeconfig eine kubeconfig-Datei für Ihren Cluster erstellen. Informationen zum manuellen Aktualisieren Ihrer kubeconfig-Datei ohne Verwendung der AWS CLI finden Sie unter Erstellen einer kubeconfig für Amazon EKS.

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten Stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Auflösung

1.    Stellen Sie sicher, dass AWS CLI Version 1.16.308 oder höher auf Ihrem System installiert ist:

$ aws --version

Wichtig: Auf Ihrem System muss Python Version 2.7.9 oder höher installiert sein. Andernfalls erhalten Sie eine Fehlermeldung.

Tipp: Paketmanager wie yum, apt-get oder homebrew für macOS werden häufig verwendet, um die AWS CLI zu installieren.

2.    Überprüfen Sie die aktuelle Identität, um sicherzustellen, dass Sie die richtigen Anmeldeinformationen verwenden, die über Berechtigungen für den Amazon-EKS-Cluster verfügen:

aws sts get-caller-identity

Hinweis: Der Benutzer oder die Rolle der Entität von AWS Identity and Access Management (IAM), die einen Amazon-Cluster erstellt, erhält automatisch system:master-Berechtigungen, wenn der Cluster erstellt wird. Diese Berechtigungen werden in der RBAC-Konfiguration des Clusters in der Steuerungsebene gewährt. IAM-Benutzern oder -Rollen kann auch Zugriff auf einen Amazon-EKS-Cluster in aws-auth-ConfigMap gewährt werden. Standardmäßig verwendet AWS IAM Authenticator für Kubernetes die konfigurierte AWS-CLI- oder AWS-SDK-Identität.

3.    Erstellen oder aktualisieren Sie die kubeconfig-Datei für Ihren Cluster:

aws eks --region region update-kubeconfig --name cluster_name

Hinweis: Ersetzen Sie die Region durch Ihre AWS-Region. Ersetzen Sie cluster_name durch Ihren Clusternamen.

Standardmäßig wird die Konfigurationsdatei im kubeconfig-Pfad ( $HOME/.kube/config) in Ihrem Heimverzeichnis erstellt oder mit einer vorhandenen kubeconfig an diesem Speicherort zusammengeführt. Unter Windows befindet sich die Datei unter %USERPROFILE%\.kube\config.

Sie können auch einen anderen Pfad angeben, indem Sie die Umgebungsvariable KUBECONFIG (von der Kubernetes-Website) festlegen oder die folgende --kubeconfig-Option benutzen:

$ kubectl get pods --kubeconfig ./.kube/config

Hinweis: Für die Authentifizierung beim Ausführen von kubectl-Befehlen können Sie mit der Option --role-arn einen Amazon-Ressourcennamen (ARN) für die IAM-Rolle angeben. Andernfalls wird die IAM-Entität in Ihrer standardmäßigen AWS-CLI- oder AWS-SDK-Anmeldeinformationskette verwendet. Weitere Informationen finden Sie unter update-kubeconfig, oder führen Sie Schritt 6 im Abschnitt „Kubeconfig manuell erstellen“ von Erstellen einer kubeconfig für Amazon EKS aus.

4.    Testen Sie Ihre Konfiguration:

$ kubectl get svc

Beispielausgabe:

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m

Hinweis: Wenn Sie andere Autorisierungs- oder Ressourcentypfehler erhalten, lesen Sie Nicht autorisiert oder Zugriff verweigert (kubectl).