Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Création d’un cluster du mode automatique EKS à l’aide de la CLI AWS
Les clusters du mode automatique EKS automatisent les tâches courantes de gestion du cluster pour le calcul, le stockage et la mise en réseau. Par exemple, les clusters du mode automatique EKS détectent automatiquement lorsque des nœuds supplémentaires sont nécessaires et provisionnent de nouvelles instances EC2 pour répondre aux besoins des charges de travail.
Cette rubrique explique comment créer un nouveau cluster du mode automatique EKS à l’aide de la CLI AWS et éventuellement déployer un exemple de charge de travail.
Prérequis
-
La dernière version de l’interface de la ligne de commande AWS (AWS CLI) installée et configurée sur votre appareil. Pour vérifier votre version actuelle, utilisez
aws --version. Pour installer la dernière version, consultez les sections Installation et Configuration rapide avec aws configure du Guide de l’utilisateur de l’interface de la ligne de commande AWS.-
Connectez-vous à la CLI avec des autorisations IAM suffisantes pour créer des ressources AWS, notamment des politiques IAM, des rôles IAM et des clusters EKS.
-
-
L’outil de ligne de commande kubectl installé sur votre appareil. AWS recommande d’utiliser la même version de kubectl que la version Kubernetes de votre cluster EKS. Pour installer ou mettre à niveau kubectl, consultez Configuration de kubectl et eksctl.
Spécification des sous-réseaux VPC
Le mode automatique Amazon EKS déploie des nœuds sur des sous-réseaux VPC. Lorsque vous créez un cluster EKS, vous devez spécifier les sous-réseaux VPC dans lesquels les nœuds seront déployés. Vous pouvez utiliser les sous-réseaux VPC par défaut dans votre compte AWS ou créer un VPC dédié pour les charges de travail critiques.
-
AWS recommande de créer un VPC dédié pour votre cluster. Découvrez comment Création d’un VPC Amazon pour votre cluster Amazon EKS.
-
La console EKS aide à créer un nouveau VPC. Découvrez comment Création d’un cluster du mode automatique EKS à l’aide de la AWS Management Console.
-
Vous pouvez également utiliser le VPC par défaut de votre compte AWS. Utilisez les instructions suivantes pour trouver les ID de sous-réseaux.
Utilisation de l'interface de ligne de commande AWS :
-
Exécutez la commande suivante pour répertorier le VPC par défaut et ses sous-réseaux :
aws ec2 describe-subnets --filters "Name=vpc-id,Values=$(aws ec2 describe-vpcs --query 'Vpcs[?IsDefault==`true`].VpcId' --output text)" --query 'Subnets[*].{ID:SubnetId,AZ:AvailabilityZone}' --output table -
Enregistrez la sortie et notez les ID de sous-réseau.
Exemple de sortie :
---------------------------------------- | DescribeSubnets | ---------------------------------------- | SubnetId | AvailabilityZone | |--------------------|---------------------| | subnet-012345678 | us-west-2a | | subnet-234567890 | us-west-2b | | subnet-345678901 | us-west-2c | ----------------------------------------
Rôles IAM des clusters du mode automatique EKS
Rôle IAM du cluster
Le mode automatique EKS nécessite un rôle IAM de cluster pour effectuer des actions dans votre compte AWS, telles que le provisionnement de nouvelles instances EC2. Vous devez créer ce rôle afin d’accorder à EKS les autorisations nécessaires. AWS recommande d’attacher les politiques gérées AWS suivantes au rôle IAM du cluster :
Rôle IAM de nœud
Lorsque vous créez un cluster du mode automatique EKS, vous spécifiez un rôle IAM de nœud. Lorsque le mode automatique EKS crée des nœuds pour traiter les charges de travail en attente, chaque nouvelle instance EC2 est associée au rôle IAM de nœud. Ce rôle permet au nœud de communiquer avec EKS, mais il n’est généralement pas utilisé par les charges de travail qui s’exécutent sur ce nœud.
Si vous souhaitez accorder des autorisations à des charges de travail exécutées sur un nœud, utilisez l’identité du pod EKS. Pour de plus amples informations, consultez Découvrir comment l’identité du pod Amazon EKS accorde aux pods l’accès aux services AWS.
Vous devez créer ce rôle et y attacher la politique gérée AWS suivante :
Rôle lié à un service
Le mode automatique EKS nécessite également un rôle lié au service, qui est automatiquement créé et configuré par AWS. Pour plus d’informations, consultez AWSServiceRoleForAmazonEKS.
Création d’un rôle IAM de cluster du mode automatique Amazon EKS
Étape 1 : créer la politique d’approbation
Créez une politique d’approbation qui permet au service Amazon EKS d’assumer le rôle. Enregistrez la politique sous trust-policy.json :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
Étape 2 : créer le rôle IAM
Utilisez la politique d’approbation pour créer le rôle IAM du cluster :
aws iam create-role \
--role-name AmazonEKSAutoClusterRole \
--assume-role-policy-document file://trust-policy.json
Étape 3 : noter l’ARN du rôle
Extrayez et enregistrez l’ARN du nouveau rôle pour les étapes ultérieures :
aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text
Étape 4 : attacher les politiques requises
Attachez les politiques gérées par AWS suivantes au rôle IAM du cluster afin de lui accorder les autorisations nécessaires :
AmazonEKSClusterPolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
AmazonEKSComputePolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy
AmazonEKSBlockStoragePolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy
AmazonEKSLoadBalancingPolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy
AmazonEKSNetworkingPolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy
Création d’un rôle IAM de nœud du mode automatique EKS
Étape 1 : créer la politique d’approbation
Créez une politique d’approbation qui permet au service Amazon EKS d’assumer le rôle. Enregistrez la politique sous node-trust-policy.json :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } ----[source,json,subs="verbatim,attributes"]
Étape 2 : créer le rôle IAM du nœud
Utilisez le fichier node-trust-policy.json de l’étape précédente pour définir les entités autorisées à assumer le rôle. Exécutez la commande suivante pour créer le rôle IAM du nœud :
aws iam create-role \
--role-name AmazonEKSAutoNodeRole \
--assume-role-policy-document file://node-trust-policy.json
Étape 3 : noter l’ARN du rôle
Après la création du rôle, extrayez et enregistrez l’ARN du rôle IAM du nœud. Cet ARN sera nécessaire dans les étapes suivantes. Utilisez la commande suivante pour extraire l’ARN :
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
Étape 4 : attacher les politiques requises
Attachez les politiques gérées par AWS suivantes au rôle IAM du nœud afin de lui fournir les autorisations nécessaires :
AmazonEKSWorkerNodeMinimalPolicy :
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
AmazonEC2ContainerRegistryPullOnly :
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Création d’un cluster du mode automatique EKS
Présentation
Pour créer un cluster du mode automatique EKS à l’aide de la CLI AWS, vous aurez besoin des paramètres suivants :
-
cluster-name: nom du cluster. -
k8s-version: version Kubernetes (p. ex. : 1.31). -
subnet-ids: ID de sous-réseau identifiés aux étapes précédentes. -
cluster-role-arn: ARN du rôle IAM du cluster. -
node-role-arn: ARN du rôle IAM de nœud.
Configurations de clusters par défaut
Vérifiez ces valeurs et fonctionnalités par défaut avant de créer le cluster :
-
nodePools: le mode automatique EKS inclut des groupes de nœuds généraux et des groupes de nœuds système par défaut. Pour en savoir plus, consultez Groupes de nœuds.
Remarque : les groupes de nœuds du mode automatique EKS sont différents des groupes de nœuds gérés par Amazon EKS, mais ils peuvent coexister dans le même cluster.
-
computeConfig.enabled: automatise les tâches de calcul de routine, telles que la création et la suppression d’instances EC2. -
kubernetesNetworkConfig.elasticLoadBalancing.enabled: automatise les tâches d’équilibrage de charge, notamment la création et la suppression d’équilibreur de charges Elastic Load Balancer. -
storageConfig.blockStorage.enabled: automatise les tâches de stockage, telles que la création et la suppression de volumes Amazon EBS. -
accessConfig.authenticationMode: nécessite des entrées d’accès EKS. Pour en savoir plus, consultez Modes d’authentification EKS.
Exécution de la commande
Utilisez la commande suivante pour créer le cluster :
aws eks create-cluster \ --region ${AWS_REGION} \ --cli-input-json \ "{ \"name\": \"${CLUSTER_NAME}\", \"version\": \"${K8S_VERSION}\", \"roleArn\": \"${CLUSTER_ROLE_ARN}\", \"resourcesVpcConfig\": { \"subnetIds\": ${SUBNETS_JSON}, \"endpointPublicAccess\": true, \"endpointPrivateAccess\": true }, \"computeConfig\": { \"enabled\": true, \"nodeRoleArn\":\"${NODE_ROLE_ARN}\", \"nodePools\": [\"general-purpose\", \"system\"] }, \"kubernetesNetworkConfig\": { \"elasticLoadBalancing\": { \"enabled\": true } }, \"storageConfig\": { \"blockStorage\": { \"enabled\": true } }, \"accessConfig\": { \"authenticationMode\": \"API\" } }
Vérification de l’état du cluster
Étape 1 : vérifier la création de cluster
Exécutez la commande suivante pour vérifier l’état de votre cluster. La création d’un cluster prend généralement environ 15 minutes :
aws eks describe-cluster --name "${CLUSTER_NAME}" --output json
Étape 2 : mettre à jour kubeconfig
Une fois le cluster prêt, mettez à jour votre fichier kubeconfig local pour permettre à kubectl de communiquer avec le cluster. Cette configuration utilise la CLI AWS pour l’authentification.
aws eks update-kubeconfig --name "${CLUSTER_NAME}"
Étape 3 : vérifier les groupes de nœuds
Répertoriez les groupes de nœuds présents dans votre cluster à l’aide de la commande suivante :
kubectl get nodepools
Étapes suivantes
-
Découvrez comment déployer un exemple de charge de travail sur votre nouveau cluster du mode automatique EKS.