Lorsque j'utilise le client kubectl pour me connecter à Amazon Elastic Kubernetes Service (Amazon EKS) depuis mon hôte bastion, l'erreur suivante s'affiche : "error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"". Je souhaite résoudre ce problème.
Résolution
L'erreur invalid apiVersion s'affiche lorsque la version de kubectl que vous utilisez n'est pas compatible avec la version de l'API de votre cluster Kubernetes. Cette erreur se produit généralement lorsque vous utilisez une version antérieure de l'interface de la ligne de commande AWS (AWS CLI) pour mettre à jour le fichier kubeconfig dans $home/.kube/config. Pour résoudre ce problème, mettez à niveau l'AWS CLI vers la version la plus récente. Puis, mettez à jour à nouveau le fichier kubeconfig. Lorsque vous mettez à jour le fichier kubeconfig, le champ apiVersion du fichier kubeconfig est mis à jour vers la dernière version (v1beta1).
Effectuer une mise à niveau vers la dernière version de l'AWS CLI
Installez ou mettez à jour la dernière version de l'AWS CLI.
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez la section Résoudre les erreurs liées à l’AWS CLI.
Installer une version de kubectl prise en charge
Remarque : Vous devez utiliser une version de kubectl qui présente une différence de version mineure par rapport au plan de contrôle de votre cluster Amazon EKS. Par exemple, un client Kubectl 1.28 fonctionne avec les clusters Kubernetes 1.27, 1.28 et 1.29.
Pour installer une version de kubectl prise en charge pour votre version de cluster Amazon EKS, procédez comme suit :
-
Pour télécharger kubectl, exécutez la commande suivante :
$ 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
Remarque : Remplacez linux par votre système d'exploitation, arm64 par votre distribution et 1.29 par votre version de Kubernetes.
-
Copiez le fichier kubectl téléchargé dans un dossier de votre chemin. Si vous avez déjà installé une version de kubectl, créez un $HOME/bin/kubectl :
$ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
Remarque : Vous devez d'abord répertorier $HOME/bin dans le chemin $PATH.
-
Pour vérifier la version installée de kubectl, exécutez la commande suivante :
$ kubectl version --client
-
(Facultatif) Ajoutez le chemin $HOME/bin à votre fichier d'initialisation du shell :
$ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
-
Pour mettre à jour votre fichier kubeconfig de v1alpha1 vers v1beta1, exécutez la commande suivante :
$ aws eks update-kubeconfig --name clusterName --region regionName
Remarque : Remplacez clusterName par le nom de votre cluster et regionName par votre région AWS.
-
Pour vérifier si vous pouvez vous connecter au cluster, exécutez la commande suivante :
$ kubectl get svc
$ kubectl get pod