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.
Choix du type d’instance Amazon EC2 optimal pour les nœuds
Amazon EC2 fournit un large choix de types d'instance pour les composants master. Chaque type d'instance offre des capacités de calcul, de mémoire, de stockage et de réseau différentes. Chaque instance est également regroupée dans une famille d'instances en fonction de ces capacités. Pour la liste complète, consultez Types d’instances disponibles dans le Guide de l’utilisateur Amazon EC2. Amazon EKS publie plusieurs variantes d'AMI Amazon EC2 pour permettre la prise en charge. Pour vous assurer que le type d'instance que vous sélectionnez est compatible avec Amazon EKS, tenez compte des critères suivants.
-
Toutes les AMI Amazon EKS ne prennent pas actuellement en charge la famille
mac. -
Les AMI Amazon EKS Arm et non accélérées ne prennent pas en charge les familles
g3,g4,infetp. -
Les AMI Amazon EKS accélérées ne prennent pas en charge les familles
a,c,hpc,mett. -
Pour les instances basées sur Arm, Amazon Linux 2023 (AL2023) prend uniquement en charge les types d’instances utilisant des processeurs Graviton2 ou ultérieurs. AL2023 ne prend pas en charge les instances
A1.
Lorsque vous choisissez entre les types d'instances pris en charge par Amazon EKS, tenez compte des fonctionnalités suivantes de chaque type.
- Nombre d'instances dans un groupe de nœuds
-
De manière générale, il est préférable d’utiliser moins d’instances, mais plus grandes, surtout si vous avez de nombreux DaemonSets. Chaque instance nécessitant des appels API vers le serveur d'API, plus le nombre d'instances est élevé, plus la charge sur le serveur d'API est importante.
- Système d’exploitation
-
Examinez les types d'instances pris en charge pour Linux, Windows et Bottlerocket
. Avant de créer des instances Windows, consultez Déploiement de nœuds Windows sur les clusters EKS. - Architecture matérielle
-
Avez-vous besoin d’une architecture x86 ou Arm ? Avant de déployer des instances Arm, consultez AMI Amazon EKS optimisées Arm Amazon Linux. Avez-vous besoin d’instances basées sur le système Nitro (Linux ou Windows) ou disposant de capacités accélérées ? Si vous avez besoin de fonctionnalités accélérées, vous ne pouvez utiliser Linux qu'avec Amazon EKS.
- Nombre maximal de pods
-
Comme chaque pod reçoit sa propre adresse IP, le nombre d’adresses IP prises en charge par un type d’instance est un facteur déterminant pour savoir combien de pods peuvent s’exécuter sur cette instance. Pour déterminer manuellement combien de pods un type d’instance peut prendre en charge, consultez Nombre maximal de pods recommandé par Amazon EKS pour chaque type d'instance Amazon EC2.
Note
Si vous utilisez une AMI Amazon EKS optimisée Amazon Linux 2 en version
v20220406ou plus récente, vous pouvez utiliser un nouveau type d’instance sans devoir mettre à jour l’AMI vers la dernière version. Pour ces AMI, l’AMI calcule automatiquement la valeurmax-podsnécessaire si elle n’est pas indiquée dans le fichier eni-max-pods.txt. Les types d'instance actuellement en prévisualisation peuvent ne pas être pris en charge par Amazon EKS par défaut. Les valeurs pour max-podspour de tels types doivent encore être ajoutées àeni-max-pods.txtdans notre AMI.Les types d'instances AWS Nitro System
peuvent prendre en charge un nombre d'adresses IP nettement supérieur à celui des types d'instances non Nitro System. Cependant, toutes les adresses IP attribuées à une instance ne sont pas disponibles pour les pods. Pour attribuer un nombre significativement plus élevé d'adresses IP à vos instances, la version 1.9.0ou ultérieure du module complémentaire Amazon VPC CNI doit être installée dans votre cluster et configurée de manière appropriée. Pour de plus amples informations, consultez Attribution de davantage d’adresses IP aux nœuds Amazon EKS avec des préfixes. Pour attribuer le plus grand nombre d'adresses IP à vos instances, vous devez avoir installé la version1.10.1ou une version ultérieure du module complémentaire Amazon VPC CNI dans votre cluster et déployer le cluster avec la familleIPv6. - Famille d'IP
-
Vous pouvez utiliser n’importe quel type d’instance pris en charge lorsque vous utilisez la famille
IPv4pour un cluster, ce qui permet à votre cluster d’attribuer des adressesIPv4privées à vos pods et services. Mais si vous souhaitez utiliser la familleIPv6pour votre cluster, alors vous devez utiliser les types d'instance AWS Nitro Systemou les types d'instance matériel nu. Seul IPv4est pris en charge pour les instances Windows. Votre cluster doit utiliser la version1.10.1ou une version ultérieure du module complémentaire Amazon VPC CNI. Pour plus d'informations sur l'utilisation deIPv6, consultez En savoir plus sur IPv6 les adresses des clusters, des pods et des services. - Version du module complémentaire Amazon VPC CNI que vous exécutez
-
La dernière version du plug-in CNI Amazon VPC pour Kubernetes
prend en charge ces types d'instance . Il peut être nécessaire de mettre à jour la version de votre module complémentaire CNI Amazon VPC pour bénéficier des derniers types d'instance pris en charge. Pour de plus amples informations, consultez Attribuer IPs à des pods avec l'Amazon VPC CNI. La dernière version prend en charge les dernières fonctions pour une utilisation avec Amazon EKS. Les versions antérieures ne prennent pas en charge toutes les fonctionnalités. Vous pouvez afficher les fonctions prises en charge par les différentes versions dans Changelog sur GitHub. - Région AWS dans laquelle vous créez vos nœuds
-
Tous les types d’instances ne sont pas disponibles dans toutes les régions AWS.
- Si vous utilisez des groupes de sécurité pour les pods
-
Si vous utilisez des groupes de sécurité pour les pods, seuls certains types d’instances sont pris en charge. Pour de plus amples informations, consultez Attribution de groupes de sécurité à des pods individuels.
Nombre maximal de pods recommandé par Amazon EKS pour chaque type d'instance Amazon EC2
Comme chaque pod reçoit sa propre adresse IP, le nombre d’adresses IP prises en charge par un type d’instance est un facteur déterminant pour savoir combien de pods peuvent s’exécuter sur cette instance. Amazon EKS fournit un script que vous pouvez télécharger et exécuter pour déterminer le nombre maximal de pods recommandé par Amazon EKS pour chaque type d'instance. Le script utilise les attributs matériels de chaque instance et les options de configuration pour déterminer le nombre maximum de pods. Vous pouvez utiliser le nombre renvoyé par ces étapes pour activer des fonctionnalités telles que l’attribution d’adresses IP aux pods depuis un sous-réseau différent de celui de l’instance et l’augmentation significative du nombre d’adresses IP disponibles pour votre instance. Si vous utilisez un groupe de nœuds géré avec plusieurs types d'instances, utilisez une valeur qui fonctionne pour tous les types d'instances.
-
Téléchargez un script que vous pouvez utiliser pour calculer le nombre maximum de pods pour chaque type d'instance.
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh -
Marquez le script comme exécutable sur votre ordinateur.
chmod +x max-pods-calculator.sh -
Exécutez le script en remplaçant
m5.largepar le type d’instance que vous prévoyez de déployer et1.9.0-eksbuild.1par la version de votre module complémentaire Amazon VPC CNI. Pour déterminer la version de votre module complémentaire, consultez les procédures de mise à jour dans Attribution d’adresses IP aux pods avec Amazon VPC CNI../max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1L'exemple qui suit illustre un résultat.
29Vous pouvez ajouter les options suivantes au script pour connaître le nombre maximum de pods pris en charge lors de l'utilisation des fonctionnalités facultatives.
-
--cni-custom-networking-enabled: utilisez cette option lorsque vous souhaitez attribuer des adresses IP issues d’un sous-réseau différent de celui de votre instance. Pour de plus amples informations, consultez Déploiement de pods dans des sous-réseaux alternatifs avec réseau personnalisé. L'ajout de cette option au script précédent avec les mêmes valeurs d'exemple donne20. -
--cni-prefix-delegation-enabled: utilisez cette option lorsque vous souhaitez attribuer beaucoup plus d'adresses IP à chaque interface réseau Elastic. Cette fonctionnalité nécessite une instance Amazon Linux qui fonctionne sur le système Nitro et la version1.9.0ou ultérieure du module complémentaire CNI Amazon VPC. Pour de plus amples informations, consultez Attribution de davantage d’adresses IP aux nœuds Amazon EKS avec des préfixes. L'ajout de cette option au script précédent avec les mêmes valeurs d'exemple donne110.
-
Vous pouvez également exécuter le script avec l'option --help permettant de voir toutes les options disponibles.
Note
Le script de calcul du nombre maximal de pods limite la valeur renvoyée à 110 conformément aux seuils de capacité de mise à l’échelle Kubernetes250, un chiffre basé sur des tests internes de l'équipe pour la capacité de mise à l'échelle d'Amazon EKS. Pour plus d'informations, consultez l'article de blog Plugin CNI Amazon VPC augmente les limites du nombre de pods par nœud
Considérations relatives au mode automatique EKS
Le mode automatique EKS limite le nombre de pods sur les nœuds à la plus faible des deux valeurs suivantes :
-
Plafond strict de 110 pods
-
Le résultat du calcul du nombre maximal de pods décrit ci-dessus.