Direkt zum Inhalt

Wie behebe ich Amazon EKS-Clusterfehler, wenn ich einen Bastion-Host verwende?

Lesedauer: 2 Minute
0

Wenn ich den kubectl-Client verwende, um von meinem Bastion-Host aus eine Verbindung zu Amazon Elastic Kubernetes Service (Amazon EKS) herzustellen, erhalte ich die folgende Fehlermeldung: "error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"". Ich möchte dieses Problem lösen.

Lösung

Du erhältst den Fehler invalid apiVersion, wenn die von dir verwendete Version von kubectl nicht mit der API-Version des Kubernetes-Clusters kompatibel ist. Dieser Fehler tritt normalerweise auf, wenn du eine frühere Version der AWS Command Line Interface (AWS CLI) verwendest, um die Datei „kubeconfig“ in $home/.kube/config zu aktualisieren. Um dieses Problem zu beheben, aktualisiere die AWS-CLI auf die neueste Version. Aktualisiere dann die Datei „kubeconfig“ erneut. Wenn du die Datei „kubeconfig“ aktualisierst, wird das Feld apiVersion in der Datei „kubeconfig“ auf die neueste Version (v1beta1) aktualisiert.

Ein Upgrade auf die neueste Version der AWS CLI durchführen

Installiere oder aktualisiere die neueste Version der AWS-CLI.

Hinweis: Wenn du beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhältst, findest du weitere Informationen unter Beheben von AWS CLI-Fehlern.

Eine unterstützte kubectl-Version installieren

Hinweis: Du musst eine kubectl-Version verwenden, die nur einen geringfügigen Versionsunterschied zu der Amazon EKS-Cluster-Steuerebene aufweist. Ein 1.28-kubectl-Client funktioniert beispielsweise mit Kubernetes-Clustern 1.27, 1.28 und 1.29.

Gehe wie folgt vor, um eine unterstützte kubectl-Version für die Amazon EKS-Cluster-Version zu installieren:

  1. Führe den folgenden Befehl aus, um kubectl herunterzuladen:

        $ curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.29.3/2024-04-19/bin/linux/arm64/kubectl.sha256
        $ chmod +x ./kubectl

    Hinweis: Ersetze Linux durch dein Betriebssystem, arm64 durch deine Distribution und 1.29 durch deine Kubernetes-Version.

  2. Kopiere die heruntergeladene kubectl-Datei in einen Ordner im Pfad. Wenn du bereits eine Version von kubectl installiert hast, erstelle ein $HOME/bin/kubectl:

       $ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH

    Hinweis: Du musst $HOME/bin zuerst in $PATH auflisten.

  3. Führe den folgenden Befehl aus, um die installierte Version von kubectl zu überprüfen:

       $ kubectl version --client
  4. (Optional) Füge den $HOME/bin-Pfad zu der Shell-Initialisierungsdatei hinzu:

       $ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  5. Führe den folgenden Befehl aus, um die kubeconfig-Datei von „v1alpha1“ auf „v1beta1“ zu aktualisieren:

       $ aws eks update-kubeconfig --name clusterName --region regionName

    Hinweis: Ersetze clusterName durch den Namen deines Clusters und regionName durch deine AWS-Region.

  6. Führe den folgenden Befehl aus, um zu testen, ob du eine Verbindung zum Cluster herstellen kannst:

      $ kubectl get svc
      $ kubectl get pod
AWS OFFICIALAktualisiert vor einem Jahr