Commencer à utiliser Amazon EKS — AWS Management Console et AWS CLI - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tout le monde.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer à utiliser Amazon EKS — AWS Management Console et AWS CLI

Ce guide vous aide à créer toutes les ressources nécessaires pour démarrer avec Amazon Elastic Kubernetes Service (Amazon EKS) à l'aide du et du. AWS Management Console AWS CLI Dans ce guide, vous créez manuellement chaque ressource. À la fin de ce didacticiel, vous disposerez d'un cluster Amazon EKS en cours d'exécution sur lequel vous pouvez déployer des applications.

Les procédures de ce guide vous donnent une visibilité complète sur la façon dont chaque ressource est créée et dont les ressources interagissent les unes avec les autres. Si vous préférez créer automatiquement la plupart des ressources pour vous, utilisez la CLI eksctl pour créer votre cluster et vos nœuds. Pour plus d’informations, consultez Démarrage avec Amazon EKS : eksctl.

Prérequis

Avant de démarrer ce didacticiel, vous devez installer et configurer les outils et les ressources suivants dont vous avez besoin pour créer et gérer un cluster Amazon EKS.

  • AWS CLI— Un outil de ligne de commande pour travailler avec AWS des services, notamment Amazon EKS. Pour plus d'informations, consultez Installation, mise à jour et désinstallation d' AWS CLI dans le Guide de l'utilisateur AWS Command Line Interface . Après l'avoir installé AWS CLI, nous vous recommandons de le configurer également. Pour plus d'informations, consultez Configuration rapide avec aws configure dans le Guide de l'utilisateur AWS Command Line Interface .

  • kubectl : outil de ligne de commande pour travailler avec des clusters Kubernetes. Pour plus d’informations, consultez Installation ou mise à jour de kubectl.

  • Autorisations IAM requises : le principal de sécurité IAM que vous utilisez doit être autorisé à utiliser les rôles IAM Amazon EKS, les rôles liés à un service, AWS CloudFormation un VPC et les ressources associées. Pour plus d'informations, consultez Actions, ressources et clés de condition pour Amazon Elastic Kubernetes Service et Utilisation des rôles liés à un service dans le guide de l'utilisateur IAM. Vous devez effectuer toutes les étapes de ce guide avec le même utilisateur. Exécutez la commande suivante pour vérifier l'utilisateur actuel :

    aws sts get-caller-identity
  • Nous vous recommandons de terminer les étapes de cette rubrique dans un shell Bash. Si vous n'utilisez pas de shell Bash, certaines commandes de script telles que les caractères de continuation de ligne et la façon dont les variables sont définies et utilisées nécessitent un ajustement pour votre shell. En outre, les règles de votre shell en matière de guillemets peuvent être différentes. Pour plus d'informations, consultez la section Utilisation de guillemets avec des chaînes AWS CLI dans le Guide de AWS Command Line Interface l'utilisateur.

Étape 1 : créer votre cluster Amazon EKS

Important

Pour démarrer le plus simplement et le plus rapidement possible, cette rubrique inclut les étapes pour créer un cluster avec des paramètres par défaut. Avant de créer un cluster pour une utilisation en production, nous vous recommandons de vous familiariser avec tous les paramètres et de déployer un cluster avec les paramètres qui répondent à vos besoins. Pour plus d’informations, consultez Création d'un cluster Amazon EKS. Certains paramètres ne peuvent être activés que lors de la création de votre cluster.

Pour créer votre cluster
  1. Créez un Amazon VPC avec des sous-réseaux publics et privés qui répondent aux exigences Amazon EKS. Remplacez region-code par n'importe quelle Région AWS prise en charge par Amazon EKS. Pour en obtenir la liste Régions AWS, consultez la section Points de terminaison et quotas Amazon EKS dans le guide de référence AWS général.Vous pouvez remplacer my-eks-vpc-stack par n'importe quel nom que vous choisissez.

    aws cloudformation create-stack \ --region region-code \ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    Astuce

    Pour obtenir une liste de toutes les ressources créées par la commande précédente, ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation. Choisissez la pile my-eks-vpc-stack, puis choisissez l'onglet Ressources.

  2. Créez un rôle IAM de cluster et associez-y la politique gérée Amazon EKS IAM requise. Kubernetesles clusters gérés par Amazon EKS appellent d'autres AWS services en votre nom pour gérer les ressources que vous utilisez avec le service.

    1. Copiez le contenu suivant dans un fichier nommé eks-cluster-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Créez le rôle.

      aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Attachez la politique IAM gérée par Amazon EKS au rôle.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
  3. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

    Assurez-vous que l'image Région AWS affichée dans le coin supérieur droit de votre console est Région AWS celle dans laquelle vous souhaitez créer votre cluster. Si ce n'est pas le cas, choisissez le menu déroulant à côté du Région AWS nom et choisissez celui Région AWS que vous souhaitez utiliser.

  4. Sélectionnez Add cluster (Ajouter un cluster), puis Create (Créer). Si cette option ne s'affiche pas, sélectionnez d'abord Clusters dans le panneau de navigation gauche.

  5. Sur la page Configure cluster (Configurer le cluster), procédez de la façon suivante :

    1. Saisissez un Name (Nom) pour votre cluster, tel que my-cluster. Un nom ne peut contenir que des caractères alphanumériques (sensibles à la casse) et des traits d'union. Il doit commencer par un caractère alphanumérique et ne doit pas dépasser 100 caractères. Le nom doit être unique dans le Région AWS et dans Compte AWS lequel vous créez le cluster.

    2. Pour Cluster Service Role, choisissez ClusterRoleMyAmazonEks.

    3. Laissez les autres paramètres à leurs valeurs par défaut et choisissez Next (Suivant).

  6. Sur la page Specify networking (Spécifier les réseaux), procédez comme suit :

    1. Sélectionnez l'ID du VPC que vous avez créé à l'étape précédente dans la liste déroulante des VPC. Cela ressemble à vpc-00x0000x000x0x000 | my-eks-vpc-stack-VPC.

    2. Laissez les autres paramètres à leurs valeurs par défaut et choisissez Next (Suivant).

  7. Sur la page Configurer l’observabilité, cliquez sur Suivant.

  8. Sur la page Sélectionner des modules complémentaires, choisissez Suivant.

    Pour plus d'informations sur les modules complémentaires, consultez Modules complémentaires Amazon EKS.

  9. Sur la page Configurer les paramètres des modules complémentaires, choisissez Suivant.

  10. Sur la page Review and create (Vérifier et créer), choisissez Create (Créer).

    À droite du nom du cluster, le cluster est en Creating (En cours de création) pendant plusieurs minutes jusqu'à la fin du processus d'approvisionnement du cluster. Ne passez à l'étape suivante que lorsque le cluster est Actif.

    Note

    Il est possible que vous receviez un message d'erreur indiquant que l'une des zones de disponibilité de votre demande ne dispose pas d'une capacité suffisante pour créer un cluster Amazon EKS. Si cela se produit, la sortie de l'erreur contient les zones de disponibilité qui peuvent prendre en charge un nouveau cluster. Essayez à nouveau de créer votre cluster avec au moins deux sous-réseaux situés dans les zones de disponibilité prises en charge pour votre compte. Pour plus d’informations, consultez Capacité insuffisante.

Étape 2 : configurer votre ordinateur de façon à ce qu'il communique avec votre cluster

Dans cette section, vous créez un fichier kubeconfig pour votre cluster. Les paramètres de ce fichier activent l'option kubectl CLI pour communiquer avec votre cluster.

Pour configurer votre ordinateur pour qu'il communique avec votre cluster
  1. Créez ou mettez à jour un fichier kubeconfig pour votre cluster. Remplacez region-code par la Région AWS dans laquelle vous souhaitez créer votre cluster. Remplacez my-cluster par le nom de votre cluster.

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

    Par défaut, le paramètre config est créé dans ~/.kube ou la configuration du nouveau cluster est ajoutée à un config fichier dans ~/.kube.

  2. Testez votre configuration.

    kubectl get svc
    Note

    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.

    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

Étape 3 : créer des nœuds

Important

Pour démarrer le plus simplement et le plus rapidement possible, cette rubrique inclut les étapes pour créer des nœuds avec des paramètres par défaut. Avant de créer des nœuds pour une utilisation en production, nous vous recommandons de vous familiariser avec tous les paramètres et de déployer des nœuds avec les paramètres qui répondent à vos besoins. Pour plus d’informations, consultez Nœuds Amazon EKS. Certains paramètres ne peuvent être activés que lors de la création de vos nœuds.

Vous pouvez créer un cluster à l'aide de l'un des types de nœuds suivants. Pour en savoir plus sur chaque type, consultez Nœuds Amazon EKS. Une fois votre cluster déployé, vous pouvez ajouter d'autres types de nœuds.

  • Fargate : Linux : choisissez ce type de nœud si vous voulez exécuter des applications Linux sur AWS Fargate. Fargate est un moteur de calcul sans serveur qui vous permet de déployer des Pods Kubernetes sans gérer les instances Amazon EC2.

  • Nœuds gérés : Linux : choisissez ce type de nœud si vous souhaitez exécuter des applications Amazon Linux sur des instances Amazon EC2. Bien que cela ne soit pas inclus dans ce guide, vous pouvez également ajouter des nœuds autogérés par Windows et Bottlerocket à votre cluster.

Fargate – Linux

Créez un profil Fargate. Lorsque les Pods Kubernetes sont déployés avec des critères qui correspondent aux critères définis dans le profil, les Pods sont déployés sur Fargate.

Pour créer un profil Fargate
  1. Créez un rôle IAM et attachez-y la politique gérée Amazon EKS IAM requise. Lorsque votre cluster est créé Pods sur une infrastructure Fargate, les composants exécutés sur l'infrastructure Fargate doivent appeler les API en votre nom. AWS Cela leur permet d'effectuer des actions telles que l'extraction d'images de conteneurs depuis Amazon ECR ou le routage des journaux vers d'autres AWS services. Pour ce faire, le rôle d'exécution de Pod Amazon EKS fournit les autorisations IAM.

    1. Copiez le contenu suivant dans un fichier nommé pod-execution-role-trust-policy.json. region-codeRemplacez-le par Région AWS celui dans lequel se trouve votre cluster. Si vous souhaitez utiliser le même rôle dans l'ensemble Régions AWS de votre compte, remplacez region-code par*. Remplacez 111122223333 par l'ID de votre compte et my-cluster par le nom de votre cluster. Si vous souhaitez utiliser le même rôle pour tous les clusters de votre compte, remplacez my-cluster par *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Créez un rôle IAM d'exécution de Pod.

      aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
    3. Attachez la politique IAM gérée par Amazon EKS au rôle.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole
  2. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  3. Sur la page Clusters, choisissez le cluster my-cluster.

  4. Sur la page my-cluster, procédez comme suit :

    1. Choisissez l'onglet Calcul.

    2. Sous Fargate profiles (Profils Fargate), sélectionnez Add Fargate Profile (Ajouter un profil Fargate).

  5. Sur la page Configure Fargate profile (Configurer le profil Fargate), procédez comme suit :

    1. Pour Nom, saisissez un nom unique pour votre profil Fargate, tel que my-profile.

    2. Pour le rôle d'exécution du Pod, choisissez l'FargatePodExecutionRoleAmazoneks que vous avez créé à l'étape précédente.

    3. Sélectionnez le menu déroulant Sous-réseaux et désélectionnez tout sous-réseau dont le nom contient Public. Seuls les sous-réseaux privés sont pris en charge pour les Pods qui s'exécutent sur Fargate.

    4. Choisissez Suivant.

  6. Sur la page Configurer la sélection de Pod, procédez comme suit :

    1. Pour Espace de noms, saisissez default.

    2. Choisissez Suivant.

  7. Sur la page Vérifier et créer, vérifiez les informations de votre profil Fargate et choisissez Créer.

  8. Après quelques minutes, le Status (Statut) de la section Fargate Profile configuration (Configuration du profil) Fargate passera de Creating (En cours de création) à Active (Actif). Ne passez à l'étape suivante que lorsque le cluster est Active (Actif).

  9. Si vous prévoyez de déployer tous les Pods sur Fargate (et aucun sur les nœuds Amazon EC2), procédez comme suit pour créer un autre profil Fargate et exécuter le résolveur de noms par défaut (CoreDNS) sur Fargate.

    Note

    Si vous ne procédez pas ainsi, vous n'aurez aucun nœud à ce stade.

    1. Sur la page Fargate Profile (Profil Fargate), choisissez my-profile.

    2. Sous Fargate profiles (Profils Fargate), choisissez Add Fargate Profile (Ajouter un profil Fargate).

    3. Pour Name (Nom), saisissez CoreDNS.

    4. Pour le rôle d'exécution du Pod, choisissez l'FargatePodExecutionRoleAmazoneks que vous avez créé à l'étape précédente.

    5. Sélectionnez le menu déroulant Sous-réseaux et désélectionnez tout sous-réseau dont le nom contient Public. Seuls les sous-réseaux privés sont pris en charge pour les Pods exécutés sur Fargate.

    6. Choisissez Suivant.

    7. Pour Espace de noms, saisissez kube-system.

    8. Choisissez Match labels (Faire correspondre les étiquettes), puis choisissez Add label (Ajouter une étiquette).

    9. Saisissez k8s-app pour Key (Clé), et kube-dns pour la valeur. Cette étape est nécessaire pour que le résolveur de noms par défaut (CoreDNS) puisse être déployé sur Fargate.

    10. Choisissez Suivant.

    11. Sur la page Vérifier et créer, vérifiez les informations de votre profil Fargate et choisissez Créer.

    12. Exécutez la commande suivante pour supprimer l'annotation eks.amazonaws.com/compute-type : ec2 par défaut des Pods CoreDNS.

      kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'
    Note

    Le système crée et déploie deux nœuds basés sur l'étiquette de profil Fargate que vous avez ajoutée. Vous ne verrez rien de répertorié dans Node Groups (Groupes de nœuds) car ils ne sont pas applicables aux nœuds Fargate, mais vous verrez les nouveaux nœuds répertoriés dans l'onglet Overview (Présentation).

Managed nodes – Linux

Créez un groupe de nœuds géré, en spécifiant les sous-réseaux et le rôle IAM de nœud que vous avez créés au cours des étapes précédentes.

Pour créer votre groupe de nœuds gérés par Linux Amazon EC2
  1. Créez un rôle IAM de nœud et attachez-y la politique gérée par Amazon EKS IAM requise. Le kubelet démon du nœud Amazon EKS passe des appels aux AWS API en votre nom. Les nœuds reçoivent l'autorisation pour ces appels d'API via un profil d'instance IAM et les politiques associées.

    1. Copiez le contenu suivant dans un fichier nommé node-role-trust-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Créez le rôle IAM du nœud.

      aws iam create-role \ --role-name myAmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-policy.json"
    3. Attachez les politiques IAM gérées requises au rôle.

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name myAmazonEKSNodeRole
  2. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  3. Choisissez le nom du cluster que vous avez créé dans Étape 1 : créer votre cluster Amazon EKS, comme my-cluster.

  4. Sur la page my-cluster, procédez comme suit :

    1. Choisissez l'onglet Compute (Calcul).

    2. Choisissez Add Node Group (Ajouter un groupe de nœuds).

  5. Sur la page Configure Node Group (Configurer le groupe de nœuds), procédez comme suit :

    1. Pour Name (Nom), saisissez un nom unique pour votre groupe de nœuds gérés, tel que my-nodegroup. Le nom du groupe de nœuds ne peut pas dépasser 63 caractères. Il doit commencer par une lettre ou un chiffre, mais peut également inclure des tirets et des traits de soulignement pour les autres caractères.

    2. Pour le nom du rôle Node IAM, choisissez le NodeRole rôle MyAmazonEKS que vous avez créé à l'étape précédente. Nous recommandons que chaque groupe de nœuds utilise son propre rôle IAM unique.

    3. Choisissez Next (Suivant).

  6. Sur la page Set compute and scaling configuration (Définir la configuration de calcul et de mise à l'échelle), acceptez les valeurs par défaut et choisissez Next (Suivant).

  7. Sur la page Specify networking (Spécifier les réseaux), acceptez les valeurs par défaut et choisissez Next (Suivant).

  8. Sur la page Review and create (Vérifier et créer), vérifiez la configuration de votre groupe de nœuds gérés et choisissez Create (Créer).

  9. Après quelques minutes, le Status (Statut) dans la Node Group configuration (Configuration du groupe de nœuds) passera de Creating (En cours de création) à Active (Actif). Ne passez à l'étape suivante que lorsque le cluster est Active (Actif).

Étape 4 : afficher les ressources

Vous pouvez afficher vos nœuds et vos charges de travail Kubernetes.

Pour afficher vos nœuds et vos charges de travail
  1. Dans le panneau de navigation de gauche, choisissez Clusters. Dans la liste Clusters, sélectionnez le nom du cluster que vous avez créé, tel que my-cluster.

  2. Sur la page my-cluster, procédez comme suit :

    1. Onglet Compute (Calcul) – La liste Nodes (Nœuds) qui ont été déployés pour le cluster s'affiche. Vous pouvez choisir le nom d'un nœud pour voir plus d'informations à son sujet.

    2. Onglet Ressources : toutes les ressources Kubernetes qui sont déployées par défaut sur un cluster Amazon EKS s'affichent. Sélectionnez un type de ressources dans la console pour en savoir plus.

Étape 5 : Suppression des ressources

Une fois que vous avez terminé avec le cluster et les nœuds que vous avez créés pour ce didacticiel, vous devez supprimer les ressources que vous avez créées. Si vous souhaitez exécuter d'autres opérations avec ce cluster de supprimer les ressources, consultez Étapes suivantes.

Pour supprimer les ressources que vous avez créées dans ce guide
  1. Supprimez les groupes de nœuds ou les profils Fargate que vous avez créés.

    1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

    2. Dans le panneau de navigation de gauche, choisissez Clusters. Dans la liste des clusters, choisissez my-cluster.

    3. Choisissez l'onglet Calcul.

    4. Si vous avez créé un groupe de nœudsélectionnez le groupe de nœuds my-nodegroup, puis cliquez sur Supprimer. Entrez my-nodegroup, puis choisissez Delete (Supprimer).

    5. Pour chaque profil Fargate que vous avez créé, choisissez-le, puis choisissez Delete (Supprimer). Saisissez le nom du profil, puis choisissez Delete (Supprimer).

      Note

      Lorsque vous supprimez un deuxième profil Fargate, vous devrez peut-être attendre que la suppression du premier profil soit terminée.

    6. Ne continuez pas tant que le groupe de nœuds ou les profils Fargate supprimés.

  2. Supprimez le cluster.

    1. Dans le panneau de navigation de gauche, choisissez Clusters. Dans la liste des clusters, choisissez my-cluster.

    2. Choisissez Supprimer le cluster.

    3. Saisissez my-cluster (supprimer), puis sélectionnez Delete (Supprimer). Ne continuez pas jusqu'à ce que le cluster soit supprimé.

  3. Supprimez la AWS CloudFormation pile VPC que vous avez créée.

    1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

    2. Choisissez la pile my-eks-vpc-stack, puis choisissez Supprimer.

    3. Dans la boîte de dialogue de confirmation Delete (Supprimer)my-eks-vpc-stack, choisissez Delete stack (Supprimer la pile).

  4. Supprimez le rôle IAM que vous avez créé.

    1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

    2. Dans le panneau de navigation de gauche, choisissez Rôles.

    3. Sélectionnez chaque rôle que vous avez créé dans la liste (MyAmazoneksClusterRole, ainsi que Amazoneks ou MyAmazoneks). FargatePod ExecutionRole NodeRole Choisissez Delete (Supprimer), saisissez le texte de confirmation demandé, puis choisissez Delete (Supprimer).

Étapes suivantes

Les rubriques suivantes de la documentation vous aideront à étendre les fonctionnalités de votre cluster.