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.
Réduisez la latence pour les applications dont les temps de démarrage sont longs à l'aide de pools chauds dotés de groupes de nœuds gérés
Lorsque les temps d'initialisation ou de démarrage de vos applications sont longs, les événements de scale-out peuvent entraîner des retards : les nouveaux nœuds doivent démarrer complètement et rejoindre le cluster avant de pouvoir y planifier des pods. Cette latence peut avoir un impact sur la disponibilité des applications lors de pics de trafic ou d'événements de mise à l'échelle rapide. Les warm pools résolvent ce problème en maintenant un pool d'instances EC2 préinitialisées qui ont déjà terminé le processus de démarrage. Lors d'un événement de scale-out, les instances sont transférées directement du pool de distribution vers votre cluster, ce qui permet de contourner les étapes d'initialisation fastidieuses et de réduire considérablement le temps nécessaire à la mise à disposition de nouvelles capacités. Pour plus d'informations, consultez la section Réduction de la latence pour les applications dont le temps de démarrage est long à l'aide de pools chauds dans le guide de l'utilisateur Amazon EC2 Auto Scaling.
Les groupes de nœuds gérés par Amazon EKS prennent en charge les pools chauds Amazon EC2 Auto Scaling. Un warm pool gère des instances EC2 préinitialisées à côté de votre groupe Auto Scaling, qui peuvent rapidement rejoindre votre cluster lors d'événements de scale-out. Les instances du warm pool ont déjà terminé le processus d'initialisation du démarrage et peuvent être conservées dans un état StoppedRunning, ou. Hibernated
Amazon EKS gère les pools de chaleur tout au long du cycle de vie du groupe de nœuds en utilisant le rôle AWSServiceRoleForAmazonEKSNodegroup lié au service pour créer, mettre à jour et supprimer les ressources des pools de chaleur.
Comment ça marche
Lorsque vous configurez un pool de chaleur, Amazon EKS crée un pool de chaleur EC2 Auto Scaling attaché au groupe Auto Scaling de votre groupe de nœuds. Les instances sont lancées dans le warm pool, terminent le processus d'initialisation du démarrage et restent dans l'état configuré (Running,, ouHibernated) jusqu'à ce que Stopped cela soit nécessaire. Lors des événements de scale-out, les instances passent du warm pool au groupe Auto Scaling, terminent le processus d'initialisation d'Amazon EKS pour rejoindre le cluster et deviennent disponibles pour la planification des pods. Lorsque la réutilisation des instances est activée, les instances peuvent retourner dans le pool de chaleur lors d'événements de scale-in.
Important
Configurez toujours les pools de chaleur via l'API Amazon EKS à l'aide de create-nodegroup ouupdate-nodegroup-config. Ne modifiez pas manuellement les paramètres du warm pool à l'aide de l'API EC2 Auto Scaling, car cela peut entraîner des conflits avec la gestion des ressources par Amazon EKS.
Considérations
Important
Avant de configurer des pools de chaleur, consultez les conditions préalables et les limites de Warm pools pour Amazon EC2 Auto Scaling dans le guide de l'utilisateur d'Amazon EC2 Auto Scaling. Tous les types d'instances ou toutes les AMIs configurations ne sont pas pris en charge.
-
Autorisations IAM : le rôle
AWSServiceRoleForAmazonEKSNodegrouplié au service (créé automatiquement avec votre premier groupe de nœuds gérés) inclut les autorisations de gestion du warm pool nécessaires. -
Limitations de l'AMI : les pools chauds ne sont pas compatibles avec la personnalisation AMIs. Vous devez utiliser Amazon EKS optimisé AMIs.
-
Limites de Bottlerocket — Si vous utilisez Bottlerocket AMIs, l'état du pool n'est pas pris en charge
Hibernated. États d'utilisationStoppedou deRunningpool uniquement. De plus,reuseOnScaleIncette fonctionnalité n'est pas prise en charge avec Bottlerocket AMIs. -
Support d'hibernation : l'état du
Hibernatedpool n'est pris en charge que sur des types d'instances spécifiques. Consultez les conditions préalables à l'hibernation dans le guide de l'utilisateur Amazon EC2 pour connaître les types d'instances pris en charge. -
Incidence sur les coûts — La création d'une piscine chaude lorsqu'elle n'est pas nécessaire peut entraîner des coûts inutiles.
-
Planification de la capacité — Dimensionnez votre piscine chaude en fonction de modèles de mise à l'échelle afin d'équilibrer les coûts et la disponibilité. Commencez avec 10 à 20 % de la capacité maximale prévue.
-
Mise en réseau VPC : assurez-vous que le nombre d'adresses IP est suffisant pour les instances du groupe Auto Scaling et du warm pool.
Configurer des piscines d'eau chaude
Vous pouvez configurer des pools de chaleur lors de la création d'un nouveau groupe de nœuds gérés ou mettre à jour un groupe de nœuds gérés existant pour ajouter la prise en charge des pools de chaleur.
Paramètres de configuration
-
activé — (booléen) Indique votre intention d'associer un pool de chaleur au groupe de nœuds géré. Nécessaire pour activer le support de la piscine chaude.
-
maxGroupPreparedCapacité — (entier) Nombre maximum d'instances combinées entre le warm pool et le groupe Auto Scaling.
-
minSize — (entier) Nombre minimal d'instances à conserver dans le pool de chaleur. Valeur par défaut :
0. -
PoolState — (chaîne) État pour les instances de warm pool. Valeur par défaut :
Stopped. -
reuseOnScaleDans — (booléen) Indique si les instances retournent dans le pool de chaleur pendant les événements de scale-in au lieu de les arrêter. Valeur par défaut :
false. Non compatible avec Bottlerocket AMIs.
Utilisation de la AWS CLI
Vous pouvez configurer un pool de chaleur lors de la création d'un groupe de nœuds géré ou en ajouter un à un groupe de nœuds existant.
Création d'un groupe de nœuds avec un pool chaud
aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/AmazonEKSNodeRole \ --subnets subnet-12345678 subnet-87654321 \ --region us-east-1 \ --scaling-config minSize=2,maxSize=10,desiredSize=3 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
Ajouter un pool de chaleur à un groupe de nœuds existant
aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
Mise à jour de la configuration
Mettez à jour les paramètres de la piscine chaude à tout moment en utilisantupdate-nodegroup-config. Les instances de pool de chaleur existantes ne sont pas immédiatement affectées ; les nouveaux paramètres s'appliquent aux instances qui entrent dans le pool de chaleur après la mise à jour.
aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=10,minSize=3,poolState=Running,reuseOnScaleIn=true
Pour désactiver le pool de chaleur attaché à votre groupe de nœuds, définissez : enabled=false
aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=false
Ressources supplémentaires
-
Warm pools pour Amazon EC2 Auto Scaling dans le guide de l'utilisateur d'Amazon EC2 Auto Scaling
-
Simplifiez le cycle de vie des nœuds avec des groupes de nœuds gérés