Pourquoi suis-je incapable de me connecter à mon cluster Amazon EKS ?

Date de la dernière mise à jour : 20/01/2020

J'ai créé un cluster Amazon Elastic Kubernetes Service (Amazon EKS), mais je ne parviens pas à me connecter à mon cluster.

Brève description

Après avoir créé votre cluster Amazon EKS, vous devez configurer votre fichier kubeconfig avec l'interface de ligne de commande AWS (AWS CLI). Cette configuration vous permet de vous connecter à votre cluster à l'aide de la ligne de commande kubectl.

La résolution suivante vous montre comment créer un fichier kubeconfig pour votre cluster avec la commande update-kubeconfig de l'interface de ligne de commande AWS. Pour mettre à jour manuellement votre fichier kubeconfig sans utiliser l'interface de ligne de commande AWS, consultez la section Create a kubeconfig for Amazon EKS (Créer un fichier kubeconfig pour Amazon EKS).

Remarque : si vous recevez des erreurs lors de l'exécution des commandes de l'interface de ligne de commande AWS, assurez-vous d'utiliser la version la plus récente de l'interface de ligne de commande AWS.

Résolution

1.    Pour confirmer que la version 1.16.308 de l'interface de ligne de commande AWS ou une version ultérieure est installée sur votre système, exécutez la commande suivante :

$ aws --version

Important : la version 2.7.9 ou une version ultérieure de Python doit obligatoirement être installée sur votre système. Dans le cas contraire, vous recevez une erreur.

Conseil : les gestionnaires de package tels que yum, apt-get ou homebrew pour macOS sont souvent utilisés pour installer l'interface de ligne de commande AWS.

2.    Pour créer ou mettre à jour le fichier kubeconfig pour votre cluster, exécutez la commande suivante :

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

Remarque : remplacez région par votre région AWS. Remplacez cluster_name par le nom de votre cluster.

Par défaut, le fichier de configuration est créé sur le chemin kubeconfig ($HOME/.kube/config) dans votre répertoire de base ou fusionné avec un kubeconfig existant à cet emplacement. Pour Windows, le fichier se trouve à l'emplacement %USERPROFILE%\.kube\config.

Vous pouvez également spécifier un autre chemin en définissant la variable d'environnement KUBECONFIG (à partir du site Web Kubernetes), ou avec l'option -kubeconfig suivante :

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

Remarque : pour ce qui est de l'authentification, lorsque vous exécutez des commandes kubectl, vous pouvez spécifier un rôle AWS Identity and Access Management (IAM) Amazon Resource Name (ARN) avec l'option --role-arn. Autrement, l'entité IAM présente dans votre chaîne d'informations d'identification de l'interface de ligne de commande AWS ou du kit SDK par défaut est utilisée. Pour afficher votre identité de l'interface de ligne de commande AWS ou SDK par défaut, exécutez la commande aws sts get-caller-identity.

Pour plus d'informations, consultez update-kubeconfig.

3.    Pour tester votre configuration, exécutez la commande suivante :

$ kubectl get svc

La sortie doit être similaire à ce qui suit :

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

Remarque : si vous recevez d'autres erreurs d'autorisation ou de type de ressource, consultez Unauthorized or Access Denied (kubectl) (Non autorisé ou Accès refusé [kubectl]).