Création d'un cluster Amazon EKS - Amazon EKS

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.

Création d'un cluster Amazon EKS

Cette rubrique vous guide dans le processus de création d'un cluster Amazon EKS. Si c'est la première fois que vous créez un cluster Amazon EKS, nous vous recommandons de suivre l'un de nosMise en route avec Amazon EKSÀ la place, guides. Elles proposent des procédures complètes pour créer un cluster Amazon EKS avec des nœuds.

Important

Lorsqu'un cluster Amazon EKS est créé, l'entité IAM (utilisateur ou rôle) qui crée le cluster est ajoutée à la table d'autorisation RBAC Kubernetes en tant qu'administrateur (avecsystem:mastersAutorisations). Initialement, seul cet utilisateur IAM peut effectuer des appels vers le serveur d'API Kubernetes à l'aide dekubectl. Pour de plus amples informations, veuillez consulter Gestion des utilisateurs ou des rôles IAM pour votre cluster. Si vous utilisez la console pour créer le cluster, vous devez vous assurer que les mêmes informations d'identification d'utilisateur IAM figurent dans laAWSChaîne d'informations d'identification SDK lorsque vous exécutezkubectlsur votre cluster.

Vous pouvez créer un cluster aveceksctl, leAWS Management Console, ou leAWS CLI.

eksctl

Prerequisite

eksctlVersion 0.60.0 ou ultérieure installée. Pour l'installer ou la mettre à niveau, veuillez consulterUtilitaire de ligne de commande eksctl.

Créez un cluster Amazon EKS avec la dernière version de Kubernetes pour dans votre région par défaut. Remplacez le<example-values>(y compris<>) avec vos propres valeurs. Vous pouvez remplacer<1.20>avec n'importe quelVersion prise en charge.

eksctl create cluster \ --name <my-cluster> \ --version <1.21> \ --with-oidc \ --without-nodegroup
Astuce

Pour afficher la plupart des options qui peuvent être spécifiées lors de la création d'un cluster avec eksctl, utilisez la commande eksctl create cluster --help. Pour voir toutes les options, vous pouvez utiliser un fichier de configuration. Pour de plus amples informations, veuillez consulter Utilisation des fichiers de configuration et du schéma du fichier de configuration dans la documentation eksctl. Vous pouvez trouver des exemples de fichiers de configuration sur GitHub.

Important

Si vous envisagez de déployer des nœuds auto-gérés dansAWS Outposts,AWS Wavelength, ouAWSLocal Zones après le déploiement de votre cluster, vous devez disposer d'un VPC existant qui répond aux exigences d'Amazon EKS et utiliser le--vpc-private-subnetsavec la commande précédente. Les ID de sous-réseau que vous spécifiez ne peuvent pas êtreAWS Outposts,AWS Wavelength, ouAWSSous-réseau Local Zones. Pour plus d'informations sur l'utilisation d'un VPC existant, consultezUtiliser un VPC existant : autre configuration personnaliséedans leeksctl.

Avertissement

Si vous créez un cluster Amazon EKS à l'aide d'un fichier de configuration avecsecretsEncryption, qui nécessite unAWS Key Management Serviceet que la clé que vous utilisez est supprimée, il n'y a pas de chemin d'accès à la récupération pour le cluster. Si vous activez le chiffrement d'enveloppe, les secrets Kubernetes sont chiffrés à l'aide de la clé principale client (CMK) que vous sélectionnez. La clé CMK doit être symétrique, créée dans la même région que le cluster, et si la clé CMK a été créé dans un compte différent, l'utilisateur doit avoir accès à la clé CMK. Pour de plus amples informations, veuillez consulter Autorisation des utilisateurs d'autres comptes à utiliser une clé CMK dans le Manuel du développeur AWS Key Management Service. Le chiffrement des secrets Kubernetes avec une clé CMK AWS KMS nécessite la version 1.13 ou ultérieure de Kubernetes.

Par défaut, la commande create-key crée une clé symétrique avec une stratégie de clé qui donne à l'utilisateur racine un accès administrateur sur les actions et les ressources AWS KMS. Pour de plus amples informations, veuillez consulter Création de clés. Si vous souhaitez limiter les autorisations, assurez-vous que les actions kms:DescribeKey et kms:CreateGrant sont autorisées sur la stratégie de clé pour le principal qui appellera l'API create-cluster. Amazon EKS ne prend pas en charge la condition de stratégie de clékms:GrantIsForAWSResource. La création d'un cluster ne fonctionnera pas si cette action figure dans l'instruction de stratégie de clé.

Le provisionnement de cluster prend plusieurs minutes. Lors de la création du cluster, vous verrez plusieurs lignes de sortie. La dernière ligne de sortie est similaire à la ligne d'exemple suivante.

[✓] EKS cluster "<my-cluster>" in "<region-code>" region is ready

Une fois votre cluster 1.18 ou version ultérieure créé, vous pouvez migrer le CNI Amazon VPC, CoreDNS etkube-proxyqui ont été déployés avec votre cluster vers les modules complémentaires Amazon EKS. Pour de plus amples informations, veuillez consulter Modules complémentaires Amazon EKS.

AWS Management Console

Prerequisites

Pour créer votre cluster avec la console

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

  2. Choisissez Créer un cluster.

  3. Sur la page Configure cluster (Configurer le cluster), renseignez les champs suivants :

    • Nom— Nom unique pour votre cluster.

    • Version de Kubernetes— Version de Kubernetes à utiliser pour votre cluster.

    • Rôle de service de cluster— Choisissez le rôle de cluster Amazon EKS pour autoriser le plan de contrôle Kubernetes à gérerAWSRessources en votre nom. Pour de plus amples informations, veuillez consulter Rôle IAM de cluster Amazon EKS.

    • Chiffrement des secrets— (Facultatif) Choisissez d'activer le chiffrement d'enveloppe des secrets Kubernetes à l'aide deAWS Key Management Service(AWS KMS). La clé CMK doit être symétrique, créée dans la même région que le cluster, et si la clé CMK a été créé dans un compte différent, l'utilisateur doit avoir accès à la clé CMK. Pour de plus amples informations, veuillez consulter Autorisation des utilisateurs d'autres comptes à utiliser une clé CMK dans le Manuel du développeur AWS Key Management Service.

      Le chiffrement des secrets Kubernetes avec une clé CMK AWS KMS nécessite la version 1.13 ou ultérieure de Kubernetes. Si aucune clé n'est répertoriée, vous devez d'abord en créer une. Pour de plus amples informations, veuillez consulter Création de clés.

      Note

      Par défaut, la commande create-key crée une clé symétrique avec une stratégie de clé qui donne à l'utilisateur racine un accès administrateur sur les actions et les ressources AWS KMS. Si vous souhaitez limiter les autorisations, assurez-vous que les actions kms:DescribeKey et kms:CreateGrant sont autorisées sur la stratégie de clé pour le principal qui appellera l'API create-cluster.

      Amazon EKS ne prend pas en charge la condition de stratégie de clékms:GrantIsForAWSResource. La création d'un cluster ne fonctionnera pas si cette action figure dans l'instruction de stratégie de clé.

      Avertissement

      La suppression de la CMK mettra définitivement le cluster dans un état dégradé. Si la suppression des CMK utilisées pour la création du cluster est planifiée, vérifiez qu'il s'agit de l'action prévue avant la suppression. Une fois la clé supprimée, il n'y a pas de chemin vers la récupération pour le cluster.

    • Balises— (Facultatif) Ajoutez des balises à votre cluster. Pour de plus amples informations, veuillez consulter Marquage de vos ressources Amazon EKS.

  4. Sélectionnez Suivant.

  5. Sur la page Specify networking (Spécifier la mise en réseau) sélectionnez des valeurs pour les champs suivants :

    • VPC— Sélectionnez un VPC existant à utiliser pour votre cluster. Si aucun n'est répertorié, vous devez en créer un d'abord. Pour de plus amples informations, veuillez consulter Création d'un VPC pour votre cluster Amazon EKS.

    • Sous-réseaux— Les sous-réseaux disponibles dans le VPC spécifié dans le champ précédent sont présélectionnés. Désélectionnez un sous-réseau dont vous ne souhaitez pas qu'il héberge les ressources du cluster (nœuds de travail ou équilibreurs de charge, par exemple). Les sous-réseaux doivent répondre aux conditions requises pour un cluster Amazon EKS. Pour de plus amples informations, veuillez consulter Considérations relatives au VPC de cluster.

      Important
      • Si vous sélectionnez des sous-réseaux qui ont été créés avant le 26 mars 2020 à l'aide d'un desAWS CloudFormationModèles VPC, sachez qu'une modification des paramètres par défaut a été introduite le 26 mars 2020. Pour de plus amples informations, veuillez consulter Création d'un VPC pour votre cluster Amazon EKS.

      • Ne sélectionnez pas de sous-réseaux dansAWS Outposts,AWS WavelengthouAWSLocal Zones. Si vous envisagez de déployer des nœuds auto-gérés dansAWS Outposts,AWS WavelengthouAWSLes sous-réseaux de zones locales après avoir déployé votre cluster, assurez-vous que vous avez ou pouvez créer des sous-réseaux d'Outposts dans le VPC que vous sélectionnez.

      Groupes de sécurité— LeSecurityGroupsà partir de laAWS CloudFormationque vous avez généré lorsque vous avez créé votreVPC. ControlPlaneSecurityGroup est affiché dans le nom du menu déroulant de ce groupe de sécurité.

      Important

      NœudAWS CloudFormationmodifie le groupe de sécurité que vous spécifiez ici, de sorte queAmazon EKS vous recommande vivement d'utiliser un groupe de sécurité dédié pour chaque plan de contrôle de cluster (un par cluster). Si ce groupe de sécurité est partagé avec d'autres ressources, vous pouvez bloquer ou perturber les connexions vers ces ressources.

    • (Facultatif) ChoisissezConfiguration de la plage d'adresses IP Kubernetes Serviceet spécifiez uneGamme de service IPv4si vous voulez spécifier à quel bloc CIDR Kubernetes attribue des adresses IP de service. Le bloc CIDR doit répondre aux critères suivants :

      • Dans l'une des plages suivantes : 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16.

      • Être entre /24 et /12.

      • Ne pas chevaucher un bloc CIDR spécifié dans votre VPC.

      Nous vous recommandons de spécifier un bloc CIDR qui ne chevauche pas d'autres réseaux qui sont appairés ou connectés à votre VPC. Si vous ne l'activez pas, Kubernetes attribue des adresses IP de service à partir des blocs CIDR 10.100.0.0/16 ou 172.20.0.0/16.

      Important

      Vous pouvez spécifier un bloc d'adresse CIDR personnalisé seulement lorsque vous créez un cluster et vous ne pouvez pas modifier cette valeur une fois le cluster créé.

    • PourAccès au point de terminaison de cluster— Choisissez l'une des options suivantes :

      • Public— Active uniquement l'accès public au point de terminaison du serveur d'API Kubernetes de votre cluster. Les demandes d'API Kubernetes provenant de l'extérieur du VPC de votre cluster utilisent le point de terminaison public. Par défaut, l'accès est autorisé à partir de n'importe quelle adresse IP source. Vous pouvez éventuellement restreindre l'accès à une ou plusieurs plages d'adresses CIDR telles que 192.168.0.0/16, par exemple, en sélectionnant Advanced settings (Paramètres avancés), puis Add source (Ajouter une source).

      • Privé— Active uniquement l'accès privé au point de terminaison du serveur d'API Kubernetes de votre cluster. Les demandes d'API Kubernetes provenant du VPC de votre cluster utilisent le point de terminaison privé du VPC.

        Important

        Si vous avez créé un VPC sans accès Internet sortant, vous devez activer l'accès privé.

      • Public et privé— Autorise l'accès public et privé.

      Pour de plus amples informations sur les précédentes options, veuillez consulter la section Modification de l'accès au point de terminaison de cluster.

  6. Si vous avez sélectionné Kubernetes version 1.17 ou une version antérieure, passez directement à l'étape suivante. Si vous avez sélectionné la version 1.18 ou ultérieure, vous pouvez accepter les valeurs par défaut dans laCompléments réseaupour installer la version par défaut duAWSCNI DE VPC,CoreDNS, etkube-proxyLes modules complémentaires Amazon EKS, ou vous pouvez sélectionner une version différente. Si vous n'avez pas besoin de la fonctionnalité de l'un des modules complémentaires, vous pouvez les supprimer une fois votre cluster créé.

    Vous ne pouvez utiliser des modules complémentaires Amazon EKS qu'avec des clusters 1.18 ou une version ultérieure, car les modules complémentaires Amazon EKS ont besoin de la fonction Server-side Apply de Kubernetes, qui n'était pas disponible avant Kubernetes 1.18. Si vous avez sélectionné une autre version de Kubernetes pour votre cluster, cette option n'est pas affichée.

    Important

    LeAWSLe module complémentaire CNI VPC est configuré pour utiliser les autorisations IAM attribuées à laRôle IAM de nœud Amazon EKS. Une fois le cluster créé, mais avant de déployer des nœuds Amazon EC2 sur votre cluster, vous devez vous assurer que leAmazonEKS_CNI_PolicyLa stratégie IAM est attachée au rôle IAM de nœud ou à un rôle différent associé au compte de service Kubernetes sous lequel le module complémentaire s'exécute. Nous vous recommandons d'affecter la stratégie à un rôle IAM différent du rôle IAM de nœud en remplissant les instructions deConfiguration du plug-in Amazon VPC CNI pour utiliser les rôles IAM pour les comptes de service. Une fois votre cluster et votre rôle IAM créés, vous pouvezmettre à jour le module complémentairePour utiliser le rôle IAM que vous créez.

  7. Sélectionnez Suivant.

  8. Sur la page Configure logging (Configurer la journalisation) vous pouvez choisir les types de journaux que vous souhaitez activer. Par défaut, chaque type de journal est Disabled (Désactivé). Pour de plus amples informations, veuillez consulter Journalisation de plan de contrôle Amazon EKS.

  9. Sélectionnez Suivant.

  10. Sur la page Review and create (Vérifier et créer), passez en revue les informations que vous avez saisies ou sélectionnées sur les pages précédentes. Sélectionnez Edit (Modifier) si vous devez modifier l'une de vos sélections. Une fois que vous êtes satisfait de vos paramètres, sélectionnez Create (Créer). Le champ Status (Statut) affiche CREATING jusqu'à la fin du processus de mise en service du cluster.

    Note

    Vous pouvez recevoir 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 de plus amples informations, veuillez consulter Capacité insuffisante.

    Le provisionnement de cluster prend plusieurs minutes.

  11. Suivez la procédure dansCréation d'unkubeconfigpour Amazon EKSpour activer la communication avec votre nouveau cluster.

  12. (Facultatif) Pour utiliser certains modules complémentaires Amazon EKS ou pour permettre aux charges de travail Kubernetes de disposer d'autorisations IAM spécifiques, vous devez activer un fournisseur OpenID Connect (OIDC) pour votre cluster. Pour configurer un fournisseur OIDC pour votre cluster, consultezCréation d'un fournisseur IAM OIDC pour votre cluster. Vous n'avez qu'à activer un fournisseur OIDC pour votre cluster qu'une seule fois. Pour en savoir plus sur les modules complémentaires Amazon EKS, consultezModules complémentaires Amazon EKS. Pour en savoir plus sur l'attribution des autorisations IAM spécifiques à vos charges de travail, consultezPrésentation technique.

  13. Si vous souhaitez déployer des nœuds Amazon EC2 sur votre cluster, vous devez attacher leAmazonEKS_CNI_PolicyStratégie gérée IAM à votre rôle IAM de cluster ou à un rôle IAM que vous créez spécifiquement pour le module complémentaire Amazon VPC CNI. Pour plus d'informations sur la création d'un rôle et la configuration d'un module complémentaire pour l'utiliser, consultezConfiguration du plug-in Amazon VPC CNI pour utiliser les rôles IAM pour les comptes de service.

AWS CLI

Prerequisites

Pour créer votre cluster à l'aide de l'AWS CLI

  1. Créez votre cluster à l'aide de la commande suivante. Remplacez l'Amazon Resource Name (ARN) de votre rôle IAM de cluster Amazon EKS que vous avez créé dansRôle IAM de cluster Amazon EKSet les ID de sous-réseau et de groupe de sécurité pour le VPC que vous avez créés dansCréation d'un VPC pour votre cluster Amazon EKS. Remplacez<my-cluster>(y compris<>) avec votre nom de cluster et<region-code>avec unRégion prise en charge. Vous pouvez remplacer<1.21>avec n'importe quelVersion prise en charge.

    PoursubnetIds, ne spécifiez pas les sous-réseaux dansAWS Outposts,AWS WavelengthouAWSLocal Zones. Si vous envisagez de déployer des nœuds auto-gérés dansAWS Outposts,AWS WavelengthouAWSLes sous-réseaux de zones locales après avoir déployé votre cluster, assurez-vous que vous avez ou pouvez créer des sous-réseaux d'Outposts dans le VPC que vous spécifiez.

    aws eks create-cluster \ --region <region-code> \ --name <my-cluster> \ --kubernetes-version <1.21> \ --role-arn <arn:aws:iam::111122223333:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBKZRQR> \ --resources-vpc-config subnetIds=<subnet-a9189fe2>,<subnet-50432629>,securityGroupIds=<sg-f5c54184>
    Note

    Si votre utilisateur IAM ne dispose pas de privilèges d'administration, vous devez explicitement ajouter des autorisations pour que cet utilisateur appelle les opérations d'API Amazon EKS. Pour de plus amples informations, veuillez consulter Exemples de stratégies basées sur l'identité Amazon EKS.

    File d'attente:

    { "cluster": { "name": "<my-cluster>", "arn": "arn:aws:eks:<region-code>:<111122223333>:cluster/<my-cluster>", "createdAt": <1527785885.159>, "version": "<1.21>", "roleArn": "arn:aws:iam::<111122223333>:role/eks-service-role-AWSServiceRoleForAmazonEKS-<AFNL4H8HB71F>", "resourcesVpcConfig": { "subnetIds": [ "<subnet-a9189fe2>", "<subnet-50432629>" ], "securityGroupIds": [ "<sg-f5c54184>" ], "vpcId": "<vpc-a54041dc>", "endpointPublicAccess": true, "endpointPrivateAccess": false }, "status": "CREATING", "certificateAuthority": {} } }
    Note

    Vous pouvez recevoir 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 de plus amples informations, veuillez consulter Capacité insuffisante.

    Pour chiffrer les secrets Kubernetes avec une clé principale client (CMK) à partir d'AWS Key Management Service (AWS KMS), créez d'abord une clé CMK à l'aide de l'opération create-key.

    MY_KEY_ARN=$(aws kms create-key --query KeyMetadata.Arn —-output text)
    Note

    Par défaut, la commande create-key crée une clé symétrique avec une stratégie de clé qui donne à l'utilisateur racine un accès administrateur sur les actions et les ressources AWS KMS. Si vous souhaitez limiter les autorisations, assurez-vous que les actions kms:DescribeKey et kms:CreateGrant sont autorisées sur la stratégie de clé pour le principal qui appellera l'API create-cluster.

    Amazon EKS ne prend pas en charge la condition de stratégie de clékms:GrantIsForAWSResource. La création d'un cluster ne fonctionnera pas si cette action figure dans l'instruction de stratégie de clé.

    Ajoutez le paramètre --encryption-config à la commande aws eks create-cluster. Le chiffrement des secrets Kubernetes ne peut être activé que lorsque le cluster est créé.

    --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"<$MY_KEY_ARN>"}}]'

    Le membre keyArn peut contenir l'alias ou l'ARN de votre clé CMK. La clé CMK doit être symétrique, créée dans la même région que le cluster, et si la clé CMK a été créé dans un compte différent, l'utilisateur doit avoir accès à la clé CMK. Pour de plus amples informations, veuillez consulter Autorisation des utilisateurs d'autres comptes à utiliser une clé CMK dans le Manuel du développeur AWS Key Management Service. Le chiffrement des secrets Kubernetes avec une clé CMK AWS KMS nécessite la version 1.13 ou ultérieure de Kubernetes.

    Avertissement

    La suppression de la CMK mettra définitivement le cluster dans un état dégradé. Si la suppression des CMK utilisées pour la création du cluster est planifiée, vérifiez qu'il s'agit de l'action prévue avant la suppression. Une fois la clé supprimée, il n'y a pas de chemin vers la récupération pour le cluster.

  2. Le provisionnement de cluster prend plusieurs minutes. Vous pouvez vérifier le statut de votre cluster avec la commande suivante. Lorsque le statut de votre cluster est ACTIVE, vous pouvez continuer.

    aws eks describe-cluster \ --region <region-code> \ --name <my-cluster> \ --query "cluster.status"
  3. Lorsque la mise en service de votre cluster est terminée, récupérez les valeurs endpoint et certificateAuthority.data avec les commandes suivantes. Vous devez ajouter ces valeurs à votre configuration kubectl pour pouvoir communiquer avec votre cluster.

    1. Récupérez la valeur endpoint.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.endpoint" --output text
    2. Récupérez la valeur certificateAuthority.data.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.certificateAuthority.data" --output text
  4. Suivez la procédure dansCréation d'unkubeconfigpour Amazon EKSpour activer la communication avec votre nouveau cluster.

  5. (Facultatif) Pour utiliser les modules complémentaires Amazon EKS ou pour permettre aux charges de travail Kubernetes de disposer d'autorisations IAM spécifiques, vous devez activer un fournisseur OpenID Connect (OIDC) pour votre cluster. Pour configurer un fournisseur OIDC pour votre cluster, consultezCréation d'un fournisseur IAM OIDC pour votre cluster. Vous n'avez qu'à activer un fournisseur OIDC pour votre cluster qu'une seule fois. Pour en savoir plus sur les modules complémentaires Amazon EKS, consultezModules complémentaires Amazon EKS. Pour en savoir plus sur l'attribution des autorisations IAM spécifiques à vos charges de travail, consultezPrésentation technique.

  6. Si vous souhaitez déployer des nœuds Amazon EC2 sur votre cluster, vous devez attacher leAmazonEKS_CNI_PolicyStratégie gérée IAM à votre rôle IAM de cluster ou à un rôle IAM que vous créez spécifiquement pour le module complémentaire Amazon VPC CNI. Pour plus d'informations sur la création d'un rôle et la configuration d'un module complémentaire pour l'utiliser, consultezConfiguration du plug-in Amazon VPC CNI pour utiliser les rôles IAM pour les comptes de service.

  7. (Facultatif) Si vous avez créé un cluster 1.18 ou version ultérieure, vous pouvez migrer le CNI Amazon VPC, CoreDNS etkube-proxyqui ont été déployés avec votre cluster vers les modules complémentaires Amazon EKS. Pour de plus amples informations, veuillez consulter Modules complémentaires Amazon EKS.