Connexion de kubectl à un cluster EKS en créant un fichier kubeconfig - Amazon EKS

Aidez à améliorer cette page

Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.

Connexion de kubectl à un cluster EKS en créant un fichier kubeconfig

Dans cette rubrique, vous allez créer un fichier kubeconfig pour votre cluster (ou mettre à jour un fichier existant).

L'outil de ligne de commande kubectl utilise les informations de configuration dans les fichiers kubeconfig pour communiquer avec le serveur API d'un cluster. Pour plus d’informations, consultez Organisation de l’accès au cluster à l’aide des fichiers kubeconfig dans la documentation Kubernetes.

Amazon EKS utilise la commande aws eks get-token avec kubectl pour l'authentification du cluster. Par défaut, la CLI AWS utilise les mêmes informations d’identification que celles renvoyées par la commande suivante :

aws sts get-caller-identity
  • Un cluster Amazon EKS existant. Pour en déployer un, consultez Mise en route avec Amazon EKS.

  • L’outil de ligne de commande kubectl est installé sur votre appareil ou dans AWS CloudShell. La version peut correspondre à celle utilisée par votre cluster Kubernetes, ou différer d’au plus une version mineure, qu’elle soit antérieure ou plus récente. Par exemple, si la version de votre cluster est 1.29, vous pouvez utiliser la version kubectl 1.28, 1.29 ou 1.30. Pour installer ou mettre à niveau kubectl, veuillez consulter Configuration de kubectl et eksctl.

  • Version 2.12.3 ou ultérieure ou version 1.27.160 ou ultérieure de l’interface de la ligne de commande AWS (AWS CLI) installée et configurée sur votre appareil ou dans AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Les gestionnaires de package tels que yum, apt-get ou Homebrew pour macOS ont souvent plusieurs versions de retard par rapport à la dernière version de l’AWS CLI. Pour installer la dernière version, consultez les sections Installation et Configuration rapide avec aws configure du Guide de l’utilisateur de l’interface de la ligne de commande AWS. La version de l’AWS CLI installée dans AWS CloudShell peut également être plusieurs versions derrière la dernière version. Pour la mettre à jour, consultez la section Installation de l’AWS CLI dans votre répertoire personnel dans le Guide de l’utilisateur AWS CloudShell.

  • Un utilisateur IAM ou un rôle IAM avec l'autorisation d'utiliser l'action d'API eks:DescribeCluster pour le cluster que vous spécifiez. Pour de plus amples informations, consultez Exemples de politiques basées sur l'identité d'Amazon EKS. Si vous utilisez une identité provenant de votre propre fournisseur OpenID Connect pour accéder à votre cluster, consultez Utilisation de kubectl dans la documentation Kubernetes afin de créer ou de mettre à jour votre fichier kube config.

Créer le fichier kubeconfig automatiquement

  • Version 2.12.3 ou ultérieure ou version 1.27.160 ou ultérieure de l’interface de la ligne de commande AWS (AWS CLI) installée et configurée sur votre appareil ou dans AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Les gestionnaires de package tels que yum, apt-get ou Homebrew pour macOS ont souvent plusieurs versions de retard par rapport à la dernière version de l’AWS CLI. Pour installer la dernière version, consultez les sections Installation et Configuration rapide avec aws configure du Guide de l’utilisateur de l’interface de la ligne de commande AWS. La version de l’AWS CLI installée dans AWS CloudShell peut également être plusieurs versions derrière la dernière version. Pour la mettre à jour, consultez la section Installation de l’AWS CLI dans votre répertoire personnel dans le Guide de l’utilisateur AWS CloudShell.

  • Autorisation d'utiliser l'action d'API eks:DescribeCluster pour le cluster que vous spécifiez. Pour de plus amples informations, consultez Exemples de politiques basées sur l'identité d'Amazon EKS.

    1. Créez ou mettez à jour un fichier kubeconfig pour votre cluster. Remplacez region-code par la région AWS dans laquelle vous avez créé votre cluster et my-cluster par le nom de votre cluster.

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

      Par défaut, le fichier de configuration résultant est créé dans le chemin kubeconfig par défaut (.kube) dans votre répertoire de base ou fusionné avec un fichier config existant à cet emplacement. Vous pouvez spécifier un autre chemin avec l'option --kubeconfig.

      Vous pouvez spécifier un ARN de rôle IAM avec l'option --role-arn à utiliser pour l'authentification lorsque vous émettez des commandes kubectl. Sinon, le principal IAM présent dans votre chaîne d’informations d’identification par défaut de la CLI AWS ou du kit SDK est utilisé. Vous pouvez consulter l’identité par défaut de la CLI AWS ou du kit SDK en exécutant la commande aws sts get-caller-identity.

      Pour consulter toutes les options disponibles, exécutez la commande aws eks update-kubeconfig help ou consultez update-kubeconfig dans la Référence de la commande CLI AWS.

    2. Testez votre configuration.

      kubectl get svc

      L'exemple qui suit illustre un résultat.

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

      Si vous recevez d'autres erreurs concernant les types d'autorisations ou de ressources, consultez Accès non autorisé ou refusé (kubectl) dans la rubrique relative à la résolution des problèmes.