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 tous.
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éez une solution autogérée Microsoft Windows nœuds
Cette rubrique décrit comment lancer des groupes Auto Scaling de Windows nœuds enregistrés auprès de votre EKS cluster Amazon. Une fois que les nœuds ont rejoint le cluster, vous pouvez déployer Kubernetes applications qui leur sont adressées.
Important
Les EKS nœuds Amazon sont des EC2 instances Amazon standard, et ils vous sont facturés sur la base des prix habituels des EC2 instances Amazon. Pour plus d'informations, consultez les EC2tarifs Amazon
. Vous pouvez lancer des nœuds Windows dans des clusters Amazon EKS Extended sur AWS Outposts, mais vous ne pouvez pas les lancer dans des clusters locaux sur AWS Outposts. Pour de plus amples informations, veuillez consulter Déployez EKS Amazon sur site avec AWS Outposts.
Enable Windows support pour votre cluster. Nous vous recommandons de passer en revue les points importants à prendre en compte avant de lancer un Windows groupe de nœuds. Pour de plus amples informations, veuillez consulter Enable Windows Prise en charge de par la .
Vous pouvez lancer une solution autogérée Windows nœuds avec eksctl
ou le AWS Management Console.
- eksctl
-
Pour lancer une solution autogérée Windows nœuds utilisant
eksctl
Cette procédure exige que vous installiez
eksctl
et que votre versioneksctl
soit au moins la version0.191.0
. Vous pouvez vérifier votre version à l'aide de la commande suivante.eksctl version
Pour les instructions d'installation ou de mise à niveau de
eksctl
, consultez la rubrique Installationdans la documentation eksctl
.Note
Cette procédure fonctionne uniquement pour les clusters créés avec
eksctl
.-
(Facultatif) Si la CNIpolitique gérée par Amazon EKS _ IAM _Policy (si vous avez un
IPv4
cluster) ou
(que vous avez créée vous-même si vous avez unAmazonEKS_CNI_IPv6_Policy
IPv6
cluster) est attachée à votreRôle IAM de nœud Amazon EKS, nous vous recommandons de l'attribuer à un IAM rôle que vous associez au Kubernetesaws-node
compte de service à la place. Pour de plus amples informations, veuillez consulter Configurer le VPC CNI plugin Amazon à utiliser IRSA. -
Cette procédure part du principe que vous disposez d'un cluster existant. Si vous ne possédez pas encore de EKS cluster Amazon et de groupe de nœuds Amazon Linux pour ajouter un Windows node group to, nous vous recommandons de suivre le Commencez avec Amazon EKS — eksctl guide. Ce guide fournit une procédure détaillée expliquant comment créer un EKS cluster Amazon avec des nœuds Amazon Linux.
Créez votre groupe de nœuds avec la commande suivante.
Remplacez-le par Région AWS celui dans lequel se trouve votre cluster. Remplacezregion-code
par le nom de 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 dans le Région AWS et dans Compte AWS lequel vous créez le cluster. Remplacermy-cluster
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. Dans Kubernetes versionng-windows
1.24
ou ultérieure, vous pouvez remplacer
par2019
2022
pour utiliser Windows Serveur 2022. Remplacez le reste des
par vos propres valeurs.example values
Important
Pour déployer un groupe de nœuds ou des sous-réseaux de zone AWS locale, ne transmettez pas les sous-réseaux AWS Outposts Wavelength ou Local Zone lorsque vous créez le cluster. AWS Outposts AWS Wavelength Créez le groupe de nœuds avec un fichier de configuration, en spécifiant les AWS Outposts sous-réseaux Wavelength ou Local Zone. Pour plus d'informations, consultez Créer un nodegroup à partir d'un fichier config
et Schéma du fichier Config dans la documentation eksctl
.eksctl create nodegroup \ --region
region-code
\ --clustermy-cluster
\ --nameng-windows
\ --node-typet2.large
\ --nodes3
\ --nodes-min1
\ --nodes-max4
\ --managed=false \ --node-ami-familyWindowsServer2019FullContainer
Note
-
Si les nœuds ne parviennent pas à rejoindre le cluster, reportez-vous à Les nœuds ne parviennent pas à joindre le cluster dans le guide de dépannage.
-
Pour voir les options disponibles pour les commandes
eksctl
, saisissez la commande suivante.eksctl
command
-help
L'exemple qui suit illustre un résultat. Plusieurs lignes sont affichées pendant la création des nœuds. L'une des dernières lignes de sortie est similaire à la ligne d'exemple suivante.
[✔] created 1 nodegroup(s) in cluster "
my-cluster
" -
-
(Facultatif) Déployez un exemple d'application pour tester votre cluster et Windows nœuds.
Nous vous recommandons de bloquer Pod accès à IMDS si les conditions suivantes sont remplies :
Vous avez l'intention d'attribuer IAM des rôles à tous vos Kubernetes comptes de service afin que Pods disposent uniquement des autorisations minimales dont ils ont besoin.
Non Pods dans le cluster, nécessitent l'accès au service de métadonnées d'EC2instance Amazon (IMDS) pour d'autres raisons, telles que la récupération du courant Région AWS.
Pour plus d'informations, consultez Restreindre l'accès au profil d'instance affecté au composant master
.
-
- AWS Management Console
-
Prérequis
-
Un EKS cluster Amazon existant et un Linux groupe de nœuds. Si vous ne disposez pas de ces ressources, nous vous recommandons de suivre l'un de nos guides Commencez avec Amazon EKS pour les créer. Les guides décrivent comment créer un EKS cluster Amazon avec Linux nœuds.
-
Groupe VPC de sécurité existant répondant aux exigences d'un EKS cluster Amazon. Pour plus d’informations, consultez Afficher les exigences EKS réseau d'Amazon pour VPC et les sous-réseaux et Afficher les exigences relatives aux groupes EKS de sécurité Amazon pour les clusters. Le Commencez avec Amazon EKS guide crée un document VPC qui répond aux exigences. Vous pouvez également suivre Créez un Amazon VPC pour votre EKS cluster Amazon pour en créer un manuellement.
-
EKSCluster Amazon existant qui utilise un groupe de sécurité VPC et répondant aux exigences d'un EKS cluster Amazon. Pour de plus amples informations, veuillez consulter Création d'un EKS cluster Amazon. Si vous avez des sous-réseaux Région AWS là où vous l'avez activé AWS Outposts AWS Wavelength, ou si vous avez activé AWS des Zones Locales, ces sous-réseaux ne doivent pas avoir été transmis lorsque vous avez créé le cluster.
Étape 1 : Pour lancer l'autogestion Windows nœuds utilisant AWS Management Console
-
Attendez que le statut de votre cluster s'affiche soit
ACTIVE
. Si vous lancez vos nœuds avant que le cluster soit actif, les nœuds ne s'enregistrent pas avec le cluster et vous devez les relancer. -
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation
-
Sélectionnez Créer la pile.
-
Pour Spécifier le modèle, sélectionnez Amazon S3 URL.
-
Copiez ce qui suit URL et collez-le dans Amazon S3 URL.
https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-02-09/amazon-eks-windows-nodegroup.yaml
-
Sélectionnez Next (Suivant) deux fois.
-
Sur la page Création rapide d'une pile, saisissez les paramètres suivants en conséquence :
-
Nom de la pile : choisissez un nom pour votre pile AWS CloudFormation . Par exemple, vous pouvez l'appeler
.my-cluster
-nodes -
ClusterName: Entrez le nom que vous avez utilisé lors de la création de votre EKS cluster Amazon.
Important
Ce nom doit correspondre exactement au nom que vous avez utilisé dans Étape 1 : créer votre EKS cluster Amazon. Sinon, vos nœuds ne peuvent pas rejoindre le cluster.
-
ClusterControlPlaneSecurityGroup: Choisissez le groupe de sécurité dans la AWS CloudFormation sortie que vous avez générée lors de la création de votre VPC.
Les étapes suivantes montrent une méthode permettant de récupérer le groupe applicable.
Ouvrez la EKS console Amazon à l'adresse https://console.aws.amazon.com/eks/home#/clusters
. -
Choisissez le nom du cluster.
-
Choisissez l'onglet Networking (Mise en réseau).
-
Utilisez la valeur Groupes de sécurité supplémentaires comme référence lorsque vous effectuez une sélection ClusterControlPlaneSecurityGroupdans la liste déroulante.
-
NodeGroupName: Entrez le nom de votre groupe de nœuds. Ce nom peut être utilisé ultérieurement pour identifier le groupe de nœuds Auto Scaling qui est créé pour vos 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.
-
NodeAutoScalingGroupMinSize: Entrez le nombre minimum de nœuds que votre groupe Auto Scaling de nœuds peut atteindre.
-
NodeAutoScalingGroupDesiredCapacity: Entrez le nombre de nœuds que vous souhaitez atteindre lors de la création de votre pile.
-
NodeAutoScalingGroupMaxSize: Entrez le nombre maximum de nœuds que votre groupe Auto Scaling de nœuds peut atteindre.
-
NodeInstanceType: Choisissez un type d'instance pour vos nœuds. Pour de plus amples informations, veuillez consulter Choisissez un type d'instance de EC2 nœud Amazon optimal.
Note
Les types d'instances pris en charge pour la dernière version de Amazon VPC CNI plugin for Kubernetes
sont répertoriés dans vpc_ip_resource_limit.go sur GitHub. Vous devrez peut-être mettre à jour votre CNI version pour utiliser les derniers types d'instances pris en charge. Pour de plus amples informations, veuillez consulter Attribuer IPs à Pods avec Amazon VPC CNI. -
NodeImageIdSSMParam: prérempli avec le paramètre Amazon EC2 Systems Manager de l'Amazon EKS optimisé actuellement recommandé Windows AMIIdentifiant de base. Pour utiliser la version complète de Windows, remplacez
parCore
Full
. -
NodeImageId: (Facultatif) Si vous utilisez votre propre option personnalisée AMI (au lieu de celle EKS optimisée pour AmazonAMI), entrez un AMI ID de nœud pour votre Région AWS. Si vous spécifiez une valeur pour ce champ, elle remplace toutes les valeurs du NodeImageIdSSMParamchamp.
-
NodeVolumeSize: Spécifiez une taille de volume racine pour vos nœuds, en GiB.
-
KeyName: Entrez le nom d'une paire de EC2 SSH clés Amazon que vous pourrez utiliser pour vous connecter à vos nœuds après leur lancement. SSH Si vous ne possédez pas encore de paire de EC2 clés Amazon, vous pouvez en créer une dans le AWS Management Console. Pour plus d'informations, consultez les paires de EC2 clés Amazon dans le guide de EC2 l'utilisateur Amazon.
Note
Si vous ne fournissez pas de paire de clés ici, la AWS CloudFormation pile ne sera pas créée.
-
BootstrapArguments: Spécifiez tous les arguments facultatifs à transmettre au script bootstrap du nœud, tels que des
kubelet
arguments supplémentaires en utilisant-KubeletExtraArgs
. -
D isableIMDSv 1 : Par défaut, chaque nœud prend en charge les versions 1 du service de métadonnées d'instance (IMDSv1) etIMDSv2. Vous pouvez le désactiverIMDSv1. Pour empêcher les futurs nœuds et Pods dans le groupe de nœuds à utiliserMDSv1, définissez isableIMDSvD1 sur true. Pour plus d'informationsIMDS, voir Configuration du service de métadonnées d'instance.
-
VpcId: Sélectionnez l'ID du VPCque vous avez créé.
-
NodeSecurityGroups: Sélectionnez le groupe de sécurité créé pour votre Linux groupe de nœuds lorsque vous avez créé votre VPC. Si vos recettes Linux plusieurs groupes de sécurité sont associés aux nœuds, spécifiez-les tous. Ceci pour, par exemple, si Linux le groupe de nœuds a été créé avec
eksctl
. -
Sous-réseaux : choisissez les sous-réseaux que vous avez créés. Si vous VPC l'avez créé à l'aide des étapes Créez un Amazon VPC pour votre EKS cluster Amazon décrites dans, spécifiez uniquement les sous-réseaux privés dans VPC lesquels vos nœuds doivent être lancés.
Important
-
Si certains sous-réseaux sont des sous-réseaux publics, leur paramètre d'attribution automatique d'adresse IP publique doit être activé. Si le paramètre n'est pas activé pour le sous-réseau public, aucun nœud que vous déployez sur ce sous-réseau public ne se verra attribuer d'adresse IP publique et ne pourra pas communiquer avec le cluster ou d'autres AWS services. Si le sous-réseau a été déployé avant le 26 mars 2020 en utilisant l'un des EKS AWS CloudFormation VPCmodèles Amazon ou en utilisant
eksctl
, l'attribution automatique d'adresses IP publiques est désactivée pour les sous-réseaux publics. Pour plus d'informations sur l'activation de l'attribution d'adresse IP publique pour un sous-réseau, consultez Modification de l'attribut d'adressageIPv4
public de votre sous-réseau. Si le nœud est déployé sur un sous-réseau privé, il est capable de communiquer avec le cluster et d'autres AWS services via une NAT passerelle. -
Si les sous-réseaux ne disposent pas d'un accès Internet, assurez-vous de connaître toutes les considérations et les étapes supplémentaires indiqués dans Déployez des clusters privés avec un accès Internet limité.
-
Si vous sélectionnez AWS Outposts des sous-réseaux Wavelength ou Local Zone, les sous-réseaux ne doivent pas avoir été transmis lors de la création du cluster.
-
-
-
Reconnaissez que la pile peut créer IAM des ressources, puis choisissez Create stack.
-
Lorsque la création de votre pile est terminée, sélectionnez la pile dans la console et choisissez Outputs (Sorties).
-
Enregistrez le NodeInstanceRolepour le groupe de nœuds créé. Vous en avez besoin lorsque vous configurez votre Amazon EKS Windows nœuds.
Étape 2 : pour autoriser les nœuds à rejoindre votre cluster
-
Vérifiez si vous avez déjà appliqué le
ConfigMap
aws-auth
.kubectl describe configmap -n kube-system aws-auth
-
Si vous voyez un
ConfigMap
aws-auth
, mettez-le à jour si nécessaire.-
Ouvrez le
ConfigMap
pour le modifier.kubectl edit -n kube-system configmap/aws-auth
-
Ajoutez de nouvelles entrées
mapRoles
selon vos besoins. Définissez lesrolearn
valeurs selon les NodeInstanceRolevaleurs que vous avez enregistrées dans les procédures précédentes.[...] data: mapRoles: |
- rolearn:
[...]<ARN of linux instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - rolearn:<ARN of windows instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows -
Enregistrez le fichier et quittez votre éditeur de texte.
-
-
Si vous avez reçu un message d'erreur indiquant «
Error from server (NotFound): configmaps "aws-auth" not found
», appliquez le stockConfigMap
.-
Téléchargez la mappe de configuration.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm-windows.yaml
-
Dans le
fichier, définissez lesaws-auth-cm-windows.yaml
rolearn
valeurs en fonction des NodeInstanceRolevaleurs applicables que vous avez enregistrées dans les procédures précédentes. Pour ce faire, utilisez un éditeur de texte ou remplacez
et exécutez la commande suivante :example values
sed -i.bak -e 's|<ARN of linux instance role (not instance profile)>|
my-node-linux-instance-role
|' \ -e 's|<ARN of windows instance role (not instance profile)>|my-node-windows-instance-role
|' aws-auth-cm-windows.yamlImportant
-
Ne modifiez aucune autre ligne de ce fichier.
-
N'utilisez pas le même IAM rôle pour les deux Windows and Linux nœuds.
-
-
Appliquez la configuration. L'exécution de cette commande peut prendre quelques minutes.
kubectl apply -f aws-auth-cm-windows.yaml
-
-
Observez le statut de vos nœuds et attendez qu'ils obtiennent le statut
Ready
.kubectl get nodes --watch
Saisissez
Ctrl
+C
pour revenir à une invite de shell.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.
Si les nœuds ne parviennent pas à rejoindre le cluster, reportez-vous Les nœuds ne parviennent pas à joindre le cluster au chapitre Dépannage.
Étape 3 : actions supplémentaires
-
(Facultatif) Déployez un exemple d'application pour tester votre cluster et Windows nœuds.
-
(Facultatif) Si la CNIpolitique gérée par Amazon EKS _ IAM _Policy (si vous avez un
IPv4
cluster) ou
(que vous avez créée vous-même si vous avez unAmazonEKS_CNI_IPv6_Policy
IPv6
cluster) est attachée à votreRôle IAM de nœud Amazon EKS, nous vous recommandons de l'attribuer à un IAM rôle que vous associez au Kubernetesaws-node
compte de service à la place. Pour de plus amples informations, veuillez consulter Configurer le VPC CNI plugin Amazon à utiliser IRSA. Nous vous recommandons de bloquer Pod accès à IMDS si les conditions suivantes sont remplies :
Vous avez l'intention d'attribuer IAM des rôles à tous vos Kubernetes comptes de service afin que Pods disposent uniquement des autorisations minimales dont ils ont besoin.
Non Pods dans le cluster, nécessitent l'accès au service de métadonnées d'EC2instance Amazon (IMDS) pour d'autres raisons, telles que la récupération du courant Région AWS.
Pour plus d'informations, consultez Restreindre l'accès au profil d'instance affecté au composant master
.
-