Déploiement d'un EKS IPv6 cluster Amazon et de nœuds Amazon Linux gérés - 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.

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

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

Prérequis

Avant de commencer le didacticiel, procédez comme suit :

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

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

  • L'outil de ligne de kubectl commande est installé sur votre appareil ou AWS CloudShell. La version peut être identique ou supérieure à une version mineure antérieure ou ultérieure au Kubernetes version de votre cluster. 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 Configurer kubectl et eksctl.

  • Le principal IAM de sécurité que vous utilisez doit être autorisé à utiliser les EKS IAM rôles Amazon, les rôles liés aux services AWS CloudFormationVPC, a et les ressources associées. Pour plus d'informations, consultez les sections Actions et utilisation des rôles liés à un service dans le Guide de l'IAMutilisateur.

  • Si vous utilisez le plugin eksctl, installez la version 0.194.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. Des gestionnaires de packages tels que yumapt-get, ou Homebrew for macOS ont souvent plusieurs versions de retard par rapport à la dernière version du AWS CLI. 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 AWS CLI version 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 AWS CLI dans votre répertoire personnel 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 du AWS CLI, car la AWS CLI version par défaut installée dans le AWS CloudShell peut être une version antérieure.

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

Déployez 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 avec 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 doit pas dépasser 100 caractères. Le nom doit être unique au sein de la AWS région et du AWS compte dans lesquels vous créez le cluster.

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

    • La valeur de version correspond à la version de votre cluster. Pour de plus amples informations, veuillez consulter Comprenez le cycle de vie des versions de Kubernetes sur EKS.

    • Remplacez my-nodegroup avec un nom pour votre groupe de nœuds. Le nom du groupe de nœuds ne peut pas comporter plus de 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 avec n'importe quel type d'instance AWS Nitro System.

      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 poursuivez pas avant de voir la dernière ligne de sortie, qui ressemble à la sortie suivante.

    [...] [✓] EKS cluster "my-cluster" in "region-code" region is ready
  3. Confirmez cette valeur par défaut Pods se voient attribuer IPv6 des adresses.

    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 AWS Load Balancer Controller et un exemple d'application pour équilibrer la charge HTTP des applications Acheminez les applications et HTTP le trafic avec les équilibreurs de charge des applications ou du trafic réseau avec Route TCP et UDP trafic avec les équilibreurs de charge réseau IPv6 Pods.

  6. Une fois que vous avez terminé d'utiliser le cluster et les nœuds que vous avez créés pour ce didacticiel, vous devez nettoyer les ressources que vous avez créées à l'aide de la commande suivante.

    eksctl delete cluster my-cluster

Déployez un IPv6 cluster avec 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 des variables sont définies dans un shell différent. 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.

Tout remplacer example values dans les étapes de cette procédure avec vos propres valeurs.

  1. Exécutez les commandes suivantes pour définir certaines variables utilisées dans les étapes suivantes. Remplacez region-code avec 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 AmazonEKS. Pour obtenir la liste des AWS régions, consultez la section EKSPoints de terminaison et quotas Amazon dans le guide de référence AWS général. Remplacez my-cluster avec 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 doit pas dépasser 100 caractères. Le nom doit être unique au sein de la AWS région et du AWS compte dans lesquels vous créez le cluster. Remplacez my-nodegroup avec un nom pour votre groupe de nœuds. Le nom du groupe de nœuds ne peut pas comporter plus de 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 avec votre identifiant 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 répondant aux IPv6 exigences EKS d'Amazon.

    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 avec le nom de votre choix.

      export vpc_stack_name=my-eks-ipv6-vpc
    2. Créez et IPv6 VPC utilisez 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 pasCREATE_COMPLETE.

      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name --query Stacks[].StackStatus --output text
    3. Récupérez les IDs sous-réseaux publics 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 IAM rôle de cluster et associez-y la politique EKS IAM gérée Amazon requise. Kubernetes les clusters 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 :

      cat >eks-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    2. Exécutez la commande suivante pour définir une variable pour votre nom de rôle. Vous pouvez remplacer myAmazonEKSClusterRole avec le nom de votre choix.

      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 le ARN IAM rôle et stockez-le 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. Associez la IAM politique EKS gérée par Amazon requise 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. NOTE: il se peut que vous receviez un message d'erreur indiquant que l'une des zones de disponibilité de votre demande n'a pas la capacité suffisante pour créer un EKS cluster Amazon. 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 le résultat de la commande ne l'est pasACTIVE.

      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 config fichier est créé dans ~/.kube ou la configuration du nouveau cluster est ajoutée à un config fichier existant dans~/.kube.

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

    1. Exécutez la commande ci-dessous pour créer un fichiervpc-cni-ipv6-policy.json.

      cat >vpc-cni-ipv6-policy <<EOF { "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/*" ] } ] } EOF
    2. Créez la IAM politique.

      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 :

      cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    4. Exécutez la commande suivante pour définir une variable pour votre nom de rôle. Vous pouvez remplacer AmazonEKSNodeRole avec le nom de votre choix.

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

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

      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 didacticiel, la politique est attachée à ce IAM rôle. Dans un cluster de production, nous recommandons toutefois d'associer la politique à un IAM rôle distinct. Pour de plus amples informations, veuillez consulter Configurer le VPC CNI plugin Amazon à utiliser IRSA.

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

      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 le ARN IAM rôle et stockez-le 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 avec les valeurs renvoyées dans le résultat 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 avec n'importe quel type d'instance AWS Nitro System.

      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é ne l'est pasACTIVE.

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

    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 AWS Load Balancer Controller et un exemple d'application pour équilibrer la charge HTTP des applications Acheminez les applications et HTTP le trafic avec les équilibreurs de charge des applications ou du trafic réseau avec Route TCP et UDP trafic avec les équilibreurs de charge réseau IPv6 Pods.

  11. Une fois que vous avez terminé d'utiliser le cluster et les nœuds que vous avez créés pour ce didacticiel, vous devez nettoyer les ressources que vous avez créées à l'aide des commandes suivantes. Assurez-vous de n'utiliser aucune ressource en dehors de ce didacticiel avant de les supprimer.

    1. Si vous effectuez cette étape dans un interpréteur de commandes 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 example values avec 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 passez pas à l'étape suivante si une sortie est renvoyé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 sortie n'est pas similaire à la sortie suivante.

      An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: my-cluster.
    4. Supprimez les IAM ressources que vous avez créées. Remplacez AmazonEKS_CNI_IPv6_Policy avec le nom que vous avez choisi, si vous avez choisi un nom différent de celui utilisé lors des é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éé leVPC.

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