Déploiement d’un cluster Amazon EKS IPv6 et de nœuds Amazon Linux gérés - Amazon EKS

Aidez à améliorer cette page

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.

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

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.

Déploiement d’un cluster Amazon EKS IPv6 et de nœuds Amazon Linux gérés

Dans ce didacticiel, vous allez déployer un IPv6 Amazon VPC, un cluster Amazon EKS appartenant à la IPv6 famille et un groupe de nœuds géré avec des nœuds EC2 Amazon Linux. Vous ne pouvez pas déployer de nœuds Amazon EC2 Windows dans un IPv6 cluster. Vous pouvez également déployer des nœuds Fargate dans votre cluster, mais ces instructions ne sont pas fournies dans cette rubrique pour des raisons de simplicité.

Conditions préalables

Avant de commencer le tutoriel, veuillez effectuer les opérations suivantes :

Installez et configurez les outils et ressources suivants dont vous aurez besoin pour créer et gérer un cluster Amazon EKS.

  • 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, Simplifiez le cycle de vie des nœuds avec des groupes de nœuds gérés, et les considérations relatives à ce sujet. Vous ne pouvez activer certains paramètres que lors de la création de votre cluster.

  • L'outil de ligne de commande kubectl est installé sur votre appareil ou 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.

  • 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 les sections Actions et Utilisation des rôles liés aux services dans le Guide de l’utilisateur IAM.

  • Si vous utilisez eksctl, installez la version 0.215.0 ou une version ultérieure sur votre ordinateur. Pour l'installer ou le mettre à jour, veuillez consulter Installation dans la documentation de eksctl.

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

Vous pouvez utiliser eksctl ou CLI pour déployer un cluster IPv6.

Déployer un IPv6 cluster avec eksctl

  1. Créez le fichier ipv6-cluster.yaml. Copiez la commande qui suit sur votre appareil. Si nécessaire, apportez les modifications suivantes à la commande, puis exécutez la commande modifiée :

    • Remplacez my-cluster par un nom pour votre 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 peut pas dépasser 100 caractères. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster.

    • Remplacez region-code par n'importe quelle AWS région prise en charge par Amazon EKS. Pour obtenir la liste des AWS régions, consultez la section Points de terminaison et quotas Amazon EKS dans le guide de référence AWS général.

    • La valeur de version correspond à la version de votre cluster. Pour plus d’informations, consultez les versions prises en charge par Amazon EKS.

    • Remplacer my-nodegroup avec un nom pour votre groupe de nœuds. 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.

    • Remplacez t3.medium par tout type d'instance du système AWS Nitro.

      cat >ipv6-cluster.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: "X.XX" kubernetesNetworkConfig: ipFamily: IPv6 addons: - name: vpc-cni version: latest - name: coredns version: latest - name: kube-proxy version: latest iam: withOIDC: true managedNodeGroups: - name: my-nodegroup instanceType: t3.medium EOF
  2. Créer votre cluster.

    eksctl create cluster -f ipv6-cluster.yaml

    La création du cluster prend plusieurs minutes. Ne continuez pas avant d’avoir vu la dernière ligne de sortie, qui ressemble à la sortie suivante.

    [...] [✓] EKS cluster "my-cluster" in "region-code" region is ready
  3. Vérifiez que les pods par défaut se voient attribuer des adresses IPv6.

    kubectl get pods -n kube-system -o wide

    L'exemple qui suit illustre un résultat.

    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES aws-node-rslts 1/1 Running 1 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> aws-node-t74jh 1/1 Running 0 5m32s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-cw7w2 1/1 Running 0 56m 2600:1f13:b66:8203:34e5:: ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-tx6n8 1/1 Running 0 56m 2600:1f13:b66:8203:34e5::1 ip-192-168-253-70.region-code.compute.internal <none> <none> kube-proxy-btpbk 1/1 Running 0 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> kube-proxy-jjk2g 1/1 Running 0 5m33s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none>
  4. Vérifiez que les adresses IPv6 sont attribuées aux services par défaut.

    kubectl get services -n kube-system -o wide

    L'exemple qui suit illustre un résultat.

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-dns ClusterIP fd30:3087:b6c2::a <none> 53/UDP,53/TCP 57m k8s-app=kube-dns
  5. (Facultatif) Déployez un exemple d’application ou déployez le Contrôleur d’équilibreur de charge AWS et un exemple d’application pour équilibrer la charge des applications HTTP avec Routage du trafic des applications et du trafic HTTP avec des équilibreurs de charge Application Load Balancer ou le trafic réseau vers les pods Acheminer le trafic TCP et UDP avec des Network Load Balancers ou IPv6.

  6. Une fois que vous avez terminé avec le cluster et les nœuds que vous avez créés pour ce tutoriel, vous devez nettoyer les ressources que vous avez créées avec la commande suivante.

    eksctl delete cluster my-cluster

Déployer un IPv6 cluster avec une AWS CLI

Important
  • Vous devez effectuer toutes les étapes de cette procédure avec le même utilisateur. Exécutez la commande suivante pour vérifier l'utilisateur actuel :

    aws sts get-caller-identity
  • Vous devez effectuer toutes les étapes de cette procédure dans le même shell. Plusieurs étapes utilisent des variables définies dans les étapes précédentes. Les étapes qui utilisent des variables ne fonctionneront pas correctement si les valeurs de ces variables sont définies dans un autre shell. Si vous utilisez le AWS CloudShellpour effectuer la procédure suivante, n'oubliez pas que si vous n'interagissez pas avec le clavier ou le pointeur pendant environ 20 à 30 minutes, votre session shell se termine. Les processus en cours d'exécution ne sont pas considérés comme des interactions.

  • Les instructions sont écrites pour le shell Bash et peuvent nécessiter des ajustements dans d'autres shells.

Remplacez toutes les valeurs d'exemple dans les étapes de cette procédure par vos propres valeurs.

  1. Exécutez les commandes suivantes pour définir certaines variables utilisées dans les étapes suivantes. Remplacez region-code par la AWS région dans laquelle vous souhaitez déployer vos ressources. La valeur peut être n'importe quelle AWS région prise en charge par Amazon EKS. Pour obtenir la liste des AWS régions, consultez la section Points de terminaison et quotas Amazon EKS dans le guide de référence AWS général. Remplacez my-cluster par un nom pour votre 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 peut pas dépasser 100 caractères. Le nom doit être unique dans la AWS région et le AWS compte dans lesquels vous créez le cluster. Remplacer my-nodegroup avec un nom pour votre groupe de nœuds. 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. Remplacez 111122223333 par votre ID de compte.

    export region_code=region-code export cluster_name=my-cluster export nodegroup_name=my-nodegroup export account_id=111122223333
  2. Créez un Amazon VPC avec des sous-réseaux publics et privés qui répondent aux exigences Amazon EKS et IPv6.

    1. Exécutez la commande suivante pour définir une variable pour le nom de votre AWS CloudFormation pile. Vous pouvez remplacer my-eks-ipv6-vpc par n'importe quel nom que vous choisissez.

      export vpc_stack_name=my-eks-ipv6-vpc
    2. Créez un IPv6 VPC à l'aide d'un AWS CloudFormation modèle.

      aws cloudformation create-stack --region $region_code --stack-name $vpc_stack_name \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-ipv6-vpc-public-private-subnets.yaml

      La création de la pile prend quelques minutes. Exécutez la commande suivante. Ne passez pas à l’étape suivante tant que le résultat de la commande n’est pas CREATE_COMPLETE.

      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name --query Stacks[].StackStatus --output text
    3. Récupérez IDs les sous-réseaux publics qui ont été créés.

      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text

      L'exemple qui suit illustre un résultat.

      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE
    4. Activez l'option d'attribution automatique d'adresses IPv6 pour les sous-réseaux publics qui ont été créés.

      aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-0a1a56c486EXAMPLE --assign-ipv6-address-on-creation aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-099e6ca77aEXAMPLE --assign-ipv6-address-on-creation
    5. Récupérez les noms des sous-réseaux et des groupes de sécurité créés par le modèle à partir de la AWS CloudFormation pile déployée et stockez-les dans des variables pour une utilisation ultérieure.

      security_groups=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SecurityGroups`].OutputValue' --output text) public_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text) private_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPrivate`].OutputValue' --output text) subnets=${public_subnets},${private_subnets}
  3. Créez un rôle IAM de cluster et attachez-y la politique gérée par Amazon EKS IAM requise. Les clusters Kubernetes gérés par Amazon EKS appellent d'autres AWS services en votre nom afin de gérer les ressources que vous utilisez avec le service.

    1. Exécutez la commande suivante pour créer un fichier eks-cluster-role-trust-policy.json :

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Exécutez la commande suivante pour définir une variable pour votre nom de rôle. Vous pouvez remplacer myAmazonEKSClusterRole par n'importe quel nom que vous choisissez.

      export cluster_role_name=myAmazonEKSClusterRole
    3. Créez le rôle.

      aws iam create-role --role-name $cluster_role_name --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    4. Récupérez l'ARN du rôle IAM et le stockez dans une variable pour une étape ultérieure.

      CLUSTER_IAM_ROLE=$(aws iam get-role --role-name $cluster_role_name --query="Role.Arn" --output text)
    5. 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 $cluster_role_name
  4. Créer votre cluster.

    aws eks create-cluster --region $region_code --name $cluster_name --kubernetes-version 1.XX \ --role-arn $CLUSTER_IAM_ROLE --resources-vpc-config subnetIds=$subnets,securityGroupIds=$security_groups \ --kubernetes-network-config ipFamily=ipv6
    1. REMARQUE : 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 de plus amples informations, veuillez consulter Capacité insuffisante.

      La création du cluster prend quelques minutes. Exécutez la commande suivante. Ne passez pas à l’étape suivante tant que la sortie de la commande n’est pas ACTIVE.

      aws eks describe-cluster --region $region_code --name $cluster_name --query cluster.status
  5. Créez ou mettez à jour un fichier kubeconfig pour votre cluster afin de pouvoir communiquer avec votre cluster.

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

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

  6. Créez un rôle IAM de nœud.

    1. Exécutez la commande suivante pour créer un fichier vpc-cni-ipv6-policy.json :

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] }
    2. Créez la politique IAM.

      aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
    3. Exécutez la commande suivante pour créer un fichier node-role-trust-relationship.json :

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    4. Exécutez la commande suivante pour définir une variable pour votre nom de rôle. Vous pouvez remplacer AmazonEKSNodeRole par n'importe quel nom que vous choisissez.

      export node_role_name=AmazonEKSNodeRole
    5. Créez le rôle IAM.

      aws iam create-role --role-name $node_role_name --assume-role-policy-document file://"node-role-trust-relationship.json"
    6. Attachez la politique IAM au rôle IAM.

      aws iam attach-role-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name $node_role_name
      Important

      Pour simplifier ce tutoriel, la politique est attachée à ce rôle IAM. Toutefois, dans un cluster de production, nous recommandons de rattacher la politique à un rôle IAM distinct. Pour de plus amples informations, veuillez consulter Configuration du plug-in Amazon VPC CNI pour utiliser IRSA.

    7. Attachez deux politiques gérées IAM requises au rôle IAM.

      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name $node_role_name aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name $node_role_name
    8. Récupérez l'ARN du rôle IAM et le stockez dans une variable pour une étape ultérieure.

      node_iam_role=$(aws iam get-role --role-name $node_role_name --query="Role.Arn" --output text)
  7. Créez un groupe de nœuds gérés.

    1. Affichez les IDs sous-réseaux que vous avez créés à l'étape précédente.

      echo $subnets

      L'exemple qui suit illustre un résultat.

      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE,subnet-0377963d69EXAMPLE,subnet-0c05f819d5EXAMPLE
    2. Créez le groupe de nœuds. Remplacez 0a1a56c486EXAMPLE, 099e6ca77aEXAMPLE, 0377963d69EXAMPLE, et 0c05f819d5EXAMPLE par les valeurs renvoyées dans la sortie de l'étape précédente. Assurez-vous de supprimer les virgules entre les sous-réseaux IDs de la sortie précédente dans la commande suivante. Vous pouvez remplacer t3.medium par tout type d'instance du système AWS Nitro.

      aws eks create-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \ --subnets subnet-0a1a56c486EXAMPLE subnet-099e6ca77aEXAMPLE subnet-0377963d69EXAMPLE subnet-0c05f819d5EXAMPLE \ --instance-types t3.medium --node-role $node_iam_role

      La création du groupe de nœuds prend quelques minutes. Exécutez la commande suivante. Ne passez pas à l’étape suivante tant que le résultat renvoyé n’est pas ACTIVE.

      aws eks describe-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \ --query nodegroup.status --output text
  8. Vérifiez que les pods par défaut se voient attribuer des adresses IPv6 dans la colonne IP.

    kubectl get pods -n kube-system -o wide

    L'exemple qui suit illustre un résultat.

    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES aws-node-rslts 1/1 Running 1 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> aws-node-t74jh 1/1 Running 0 5m32s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-cw7w2 1/1 Running 0 56m 2600:1f13:b66:8203:34e5:: ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-tx6n8 1/1 Running 0 56m 2600:1f13:b66:8203:34e5::1 ip-192-168-253-70.region-code.compute.internal <none> <none> kube-proxy-btpbk 1/1 Running 0 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> kube-proxy-jjk2g 1/1 Running 0 5m33s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none>
  9. Vérifiez que les adresses IPv6 sont attribuées aux services par défaut dans la colonne IP.

    kubectl get services -n kube-system -o wide

    L'exemple qui suit illustre un résultat.

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-dns ClusterIP fd30:3087:b6c2::a <none> 53/UDP,53/TCP 57m k8s-app=kube-dns
  10. (Facultatif) Déployez un exemple d’application ou déployez le Contrôleur d’équilibreur de charge AWS et un exemple d’application pour équilibrer la charge des applications HTTP avec Routage du trafic des applications et du trafic HTTP avec des équilibreurs de charge Application Load Balancer ou le trafic réseau vers les pods Acheminer le trafic TCP et UDP avec des Network Load Balancers ou IPv6.

  11. Une fois que vous avez terminé avec le cluster et les nœuds que vous avez créés pour ce tutoriel, vous devez nettoyer les ressources que vous avez créées avec les commandes suivantes. Assurez-vous que vous n’utilisez aucune des ressources en dehors de ce tutoriel avant de les supprimer.

    1. Si vous effectuez cette étape dans un shell différent de celui dans lequel vous avez effectué les étapes précédentes, définissez les valeurs de toutes les variables utilisées dans les étapes précédentes, en remplaçant les valeurs d’exemple par les valeurs que vous avez spécifiées lorsque vous avez effectué les étapes précédentes. Si vous effectuez cette étape dans le même shell que celui dans lequel vous avez effectué les étapes précédentes, passez à l’étape suivante.

      export region_code=region-code export vpc_stack_name=my-eks-ipv6-vpc export cluster_name=my-cluster export nodegroup_name=my-nodegroup export account_id=111122223333 export node_role_name=AmazonEKSNodeRole export cluster_role_name=myAmazonEKSClusterRole
    2. Supprimez votre groupe de nœuds.

      aws eks delete-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name

      La suppression prend quelques minutes. Exécutez la commande suivante. Ne pas passer à l’étape suivante si une sortie est retournée.

      aws eks list-nodegroups --region $region_code --cluster-name $cluster_name --query nodegroups --output text
    3. Supprimez le cluster.

      aws eks delete-cluster --region $region_code --name $cluster_name

      La suppression du cluster prend quelques minutes. Avant de continuer, assurez-vous que le cluster est supprimé avec la commande suivante.

      aws eks describe-cluster --region $region_code --name $cluster_name

      Ne passez pas à l’étape suivante tant que votre résultat n’est pas similaire au résultat suivant.

      An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: my-cluster.
    4. Supprimez les ressources IAM que vous avez créées. Remplacez AmazonEKS_CNI_IPv6_Policy par le nom que vous avez choisi, si vous avez choisi un nom différent de celui utilisé dans les étapes précédentes.

      aws iam detach-role-policy --role-name $cluster_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy aws iam delete-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy aws iam delete-role --role-name $cluster_role_name aws iam delete-role --role-name $node_role_name
    5. Supprimez la AWS CloudFormation pile qui a créé le VPC.

      aws cloudformation delete-stack --region $region_code --stack-name $vpc_stack_name