Pourquoi ne puis-je pas me connecter à mon cluster Amazon EKS ?

Date de la dernière mise à jour : 23/06/2021

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 AWS Command Line Interface (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 AWS CLI, assurez-vous d'utiliser leur version la plus récente.

Résolution

1.    Vérifiez qu'AWS CLI version 1.16.308 ou une version ultérieure est installée sur votre système :

$ 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 packages tels que yum, apt-get ou homebrew pour macOS sont souvent utilisés pour installer AWS CLI.

2.    Vérifiez l'identité actuelle pour vous assurer que vous utilisez les bonnes informations d'identification donnant accès au cluster Amazon EKS :

aws sts get-caller-identity

Remarque : l'utilisateur ou le rôle de l'entité AWS Identity and Access Management (IAM) qui crée un cluster Amazon se voit automatiquement accorder des autorisations lorsque le cluster est créé. Ces autorisations sont données dans la configuration RBAC du cluster dans le plan de contrôle. Les utilisateurs ou les rôles IAM peuvent également avoir accès à un cluster Amazon EKS dans aws-auth ConfigMap. Par défaut, AWS IAM Authenticator for Kubernetes utilise l'identité AWS CLI ou AWS SDK configurée. Consultez Gestion des utilisateurs ou des rôles IAM pour votre cluster

3.    Créez ou mettez à jour le fichier kubeconfig pour votre cluster :

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. Sous Windows, l'emplacement du fichier est %USERPROFILE%\.kube\config.

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

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

Remarque : en ce qui concerne l'authentification lors de l'exécution des commandes kubectl, vous pouvez spécifier un Amazon Resource Name (ARN) de rôle IAM avec l'option --role-arn. Autrement, l'entité IAM présente dans votre chaîne d'informations d'identification AWS CLI ou AWS SDK par défaut est utilisée. Pour plus d'informations, consultez update-kubeconfig ou effectuez l'étape 6 de la section « Créer kubeconfig manuellement » dans Créer un kubeconfig pour Amazon EKS.

4.    Testez votre configuration :

$ kubectl get svc

Exemple de sortie :

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 Accès non autorisé ou refusé (kubectl).