kubectl mit einem EKS-Cluster durch Erstellen einer kubeconfig-Datei verbinden - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

kubectl mit einem EKS-Cluster durch Erstellen einer kubeconfig-Datei verbinden

In diesem Thema erstellen Sie eine kubeconfig-Datei für Ihren Cluster (oder aktualisieren eine vorhandene).

Das kubectl-Befehlszeilentool verwendet Konfigurationsinformationen in kubeconfig-Dateien für die Kommunikation mit dem API-Server eines Clusters. Weitere Informationen finden Sie unter Organisieren des Cluster-Zugriffs mit kubeconfig-Dateien in der Kubernetes-Dokumentation.

Amazon EKS verwendet den Befehl aws eks get-token mit kubectl für die Cluster-Authentifizierung. Standardmäßig verwendet die AWS CLI die Anmeldeinformationen, die mit dem folgenden Befehl zurückgegeben werden:

aws sts get-caller-identity
  • Ein vorhandener Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS.

  • Das kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in AWS CloudShell installiert. Die Version kann mit der Kubernetes-Version Ihres Clusters identisch sein oder bis zu einer Nebenversion älter oder neuer sein. Wenn Ihre Clusterversion beispielsweise 1.29 ist, können Sie kubectl-Version 1.28, 1.29, oder 1.30 damit verwenden. Informationen zum Installieren oder Aktualisieren von kubectl finden Sie unter kubectl und eksctl einrichten.

  • Version 2.12.3 oder höher oder die Version 1.27.160 oder höher der AWS-Befehlszeilenschnittstelle (AWS-CLI), die auf Ihrem Gerät oder in AWS CloudShell installiert und konfiguriert sein muss. Um Ihre aktuelle Version zu überprüfen, verwenden Sie aws --version | cut -d / -f2 | cut -d ' ' -f1. Paket-Manager wie yum, apt-get oder Homebrew für macOS sind oft mehrere Versionen hinter der neuesten Version der AWS-CLI. Um die neueste Version zu installieren, lesen Sie Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle. Die in AWS CloudShell installierte AWS-CLI-Version kann auch mehrere Versionen hinter der neuesten Version liegen. Informationen zum Aktualisieren finden Sie unter Installieren der AWS CLI in Ihrem Stammverzeichnis im AWS-CloudShell-Benutzerhandbuch.

  • Ein IAM-Benutzer oder eine Rolle mit Berechtigung zur Verwendung der API-Aktion eks:DescribeCluster für den angegebenen Cluster. Weitere Informationen finden Sie unter Beispiele für identitätsbasierte Amazon-EKS-Richtlinien. Wenn Sie für den Zugriff auf Ihren Cluster eine Identität Ihres eigenen OpenID-Connect-Anbieters verwenden, lesen Sie den Abschnitt Verwendung von kubectl in der Kubernetes-Dokumentation, um Ihre kube config-Datei zu erstellen oder zu aktualisieren.

kubeconfig-Datei automatisch erstellen

  • Version 2.12.3 oder höher oder die Version 1.27.160 oder höher der AWS-Befehlszeilenschnittstelle (AWS-CLI), die auf Ihrem Gerät oder in AWS CloudShell installiert und konfiguriert sein muss. Um Ihre aktuelle Version zu überprüfen, verwenden Sie aws --version | cut -d / -f2 | cut -d ' ' -f1. Paket-Manager wie yum, apt-get oder Homebrew für macOS sind oft mehrere Versionen hinter der neuesten Version der AWS-CLI. Um die neueste Version zu installieren, lesen Sie Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle. Die in AWS CloudShell installierte AWS-CLI-Version kann auch mehrere Versionen hinter der neuesten Version liegen. Informationen zum Aktualisieren finden Sie unter Installieren der AWS CLI in Ihrem Stammverzeichnis im AWS-CloudShell-Benutzerhandbuch.

  • Berechtigung zur Nutzung der eks:DescribeCluster-API-Aktion für den Cluster, den Sie angeben. Weitere Informationen finden Sie unter Beispiele für identitätsbasierte Amazon-EKS-Richtlinien.

    1. Erstellen oder aktualisieren Sie eine kubeconfig-Datei für Ihren Cluster. Ersetzen Sie region-code durch die AWS-Region, in der sich Ihr Cluster befindet, und my-cluster durch den Namen Ihres Clusters.

      aws eks update-kubeconfig --region region-code --name my-cluster

      Standardmäßig wird die resultierende Konfigurationsdatei im Standard kubeconfig-Pfad (.kube) in Ihrem Stammverzeichnis erstellt oder mit einer vorhandenen config-Datei an diesem Speicherort zusammengeführt. Sie können mit der Option --kubeconfig einen anderen Pfad angeben.

      Sie können einen IAM-Rollen-ARN mit der Option --role-arn für die Authentifizierung verwenden, wenn Sie kubectl-Befehle ausgeben. Andernfalls wird der IAM-Prinzipal in Ihrer standardmäßigen AWS CLI- oder SDK-Anmeldeinformationskette verwendet. Sie können Ihre standardmäßige AWS-CLI oder SDK-Identität anzeigen, indem Sie den Befehl aws sts get-caller-identity ausführen.

      Um alle verfügbaren Optionen anzuzeigen, führen Sie den aws eks update-kubeconfig help-Befehl aus oder sehen Sie sich update-kubeconfig in der AWS-CLI-Befehlsreferenz an.

    2. Testen Sie Ihre Konfiguration.

      kubectl get svc

      Eine Beispielausgabe sieht wie folgt aus.

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

      Wenn Sie Autorisierungs- oder Ressourcenfehler erhalten, finden Sie weitere Informationen unter Nicht autorisiert oder Zugriff verweigert (kubectl) im Thema zur Fehlerbehebung.