Choisissez un type d'instance de EC2 nœud Amazon optimal - 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.

Choisissez un type d'instance de EC2 nœud Amazon optimal

Amazon EC2 propose une large sélection de types d'instances pour les nœuds de travail. 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 obtenir une liste, consultez la section Types d'instances disponibles dans le guide de EC2 l'utilisateur Amazon. Amazon EKS publie plusieurs variantes d'Amazon EC2 AMIs pour permettre le support. Pour vous assurer que le type d'instance que vous sélectionnez est compatible avec AmazonEKS, tenez compte des critères suivants.

  • Actuellement, tous les Amazon EKS AMIs ne prennent pas en charge les mac familles g5g et les familles.

  • Arm et Amazon non accéléré EKS AMIs ne prend pas en charge lesg3, g4inf, et p les familles.

  • Amazon accéléré EKS AMIs ne prend pas en charge les ac,hpc,m, et t les familles.

  • Pour les instances basées sur ARM, Amazon Linux 2023 (AL2023) ne prend en charge que les types d'instances qui utilisent Graviton2 ou processeurs ultérieurs. AL2023 ne prend pas en charge les A1 instances.

Lorsque vous choisissez entre les types d'instances pris en charge par AmazonEKS, tenez compte des fonctionnalités suivantes pour chaque type.

Nombre d'instances dans un groupe de nœuds

En général, il est préférable d'utiliser des instances moins nombreuses et plus volumineuses, surtout si vous avez beaucoup de Daemonsets. Chaque instance nécessite API des appels au API serveur. Ainsi, plus vous avez d'instances, plus le API serveur est chargé.

Système d’exploitation

Examinez les types d'instances pris en charge pour LinuxWindows et Bottlerocket. Avant de créer Windows instances, consultez Déployer des nœuds Windows sur EKS des clusters.

Architecture matérielle

Vous avez besoin x86 or Arm? Avant le déploiement Arm instances, consultez Arm Amazon Linux EKS optimisé par Amazon AMIs. Avez-vous besoin d'instances basées sur Nitro System (Linux ou Windows) ou dotés de fonctionnalités accélérées ? Si vous avez besoin de fonctionnalités accélérées, vous pouvez uniquement utiliser Linux avec AmazonEKS.

Nombre maximum de Pods

Depuis chaque Pod se voit attribuer sa propre adresse IP, le nombre d'adresses IP prises en charge par un type d'instance est un facteur déterminant le nombre de Pods qui peut s'exécuter sur l'instance. Pour déterminer manuellement combien Pods un type d'instance prend en charge, voirMaximum EKS recommandé par Amazon Pods pour chaque type d'EC2instance Amazon. + NOTE: If you’re using an Amazon EKS optimized Amazon Linux 2 AMI that’s `v20220406 ou plus récent, vous pouvez utiliser un nouveau type d'instance sans passer à la dernière versionAMI. Pour ceux-ciAMIs, la max-pods valeur nécessaire est AMI calculée automatiquement si elle n'est pas répertoriée dans le eni-max-podsfichier .txt. Les types d'instances actuellement en version préliminaire peuvent ne pas être pris en charge par Amazon EKS par défaut. Les valeurs de « max-pods » pour ces types doivent encore être ajoutées dans notre. eni-max-pods.txt AMI

AWS Les types d'instances Nitro System prennent éventuellement en charge un plus grand nombre d'adresses IP que les types d'instances autres que Nitro System. Cependant, toutes les adresses IP attribuées à une instance ne sont pas disponibles pour Pods. Pour attribuer un nombre nettement plus important d'adresses IP à vos instances, vous devez disposer de la version 1.9.0 ou ultérieure du VPC CNI module complémentaire Amazon installée dans votre cluster et configurée de manière appropriée. Pour de plus amples informations, veuillez consulter Attribuez davantage d'adresses IP aux EKS nœuds Amazon avec des préfixes. Pour attribuer le plus grand nombre d'adresses IP à vos instances, vous devez installer la version 1.10.1 ou une version ultérieure du VPC CNI module complémentaire Amazon dans votre cluster et déployer le cluster avec la IPv6 famille.

Famille IP

Vous pouvez utiliser n'importe quel type d'instance pris en charge lorsque vous utilisez la IPv4 famille d'un cluster, ce qui permet à votre cluster d'attribuer IPv4 des adresses privées à votre Pods et services. Mais si vous souhaitez utiliser la famille IPv6 pour votre cluster, alors vous devez utiliser les types d'instance AWS Nitro System ou les types d'instance matériel nu. N'IPv4est pris en charge que pour Windows instances. Votre cluster doit exécuter la version 1.10.1 ou une version ultérieure du VPC CNI module complémentaire Amazon. Pour plus d'informations sur l'utilisation de IPv6, consultez En savoir plus sur IPv6 les adresses des clusters, pods, et services.

Version du VPC CNI module complémentaire Amazon que vous utilisez

La dernière version du VPCCNIplugin Amazon pour Kubernetes prend en charge ces types d'instances. Vous devrez peut-être mettre à jour la version de votre VPC CNI module complémentaire Amazon pour tirer parti des derniers types d'instances pris en charge. Pour de plus amples informations, veuillez consulter Amazon VPC CNI. La dernière version prend en charge les dernières fonctionnalités destinées à être utilisées avec AmazonEKS. Les versions antérieures ne prennent pas en charge toutes les fonctionnalités. Vous pouvez consulter les fonctionnalités prises en charge par les différentes versions dans le Changelog sur GitHub.

AWS Région dans laquelle vous créez vos nœuds

Tous les types d'instances ne sont pas disponibles dans toutes les AWS régions.

Si vous utilisez des groupes de sécurité pour Pods

Si vous utilisez des groupes de sécurité pour Pods, seuls des types d'instances spécifiques sont pris en charge. Pour de plus amples informations, veuillez consulter Attribuer des groupes de sécurité à un individu pods.

Maximum EKS recommandé par Amazon Pods pour chaque type d'EC2instance Amazon

Depuis chaque Pod se voit attribuer sa propre adresse IP, le nombre d'adresses IP prises en charge par un type d'instance est un facteur déterminant le nombre de Pods qui peut s'exécuter sur l'instance. Amazon EKS fournit un script que vous pouvez télécharger et exécuter pour déterminer le nombre maximum de EKS Pods à exécuter sur chaque type d'instance. Le script utilise les attributs matériels de chaque instance et les options de configuration pour déterminer le maximum Pods numéro. Vous pouvez utiliser le numéro renvoyé lors de ces étapes pour activer des fonctionnalités telles que l'attribution d'adresses IP à des pods à partir d'un sous-réseau différent de celui de l'instance et l'augmentation significative du nombre d'adresses IP 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.

  1. 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
  2. Marquez le script comme exécutable sur votre ordinateur.

    chmod +x max-pods-calculator.sh
  3. Exécutez le script en remplaçant m5.large avec le type d'instance que vous prévoyez de déployer et 1.9.0-eksbuild.1 avec votre version VPC CNI complémentaire Amazon. Pour déterminer la version de votre module complémentaire, consultez les procédures de mise à jour dans Assign IPs to Pods with the Amazon VPC CNI.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    L'exemple qui suit illustre un résultat.

    29

    Vous pouvez ajouter les options suivantes au script pour voir le maximum Pods pris en charge lors de l'utilisation de fonctionnalités optionnelles.

    • --cni-custom-networking-enabled— Utilisez cette option lorsque vous souhaitez attribuer des adresses IP provenant d'un sous-réseau différent de celui de votre instance. Pour de plus amples informations, veuillez consulter Déploiement pods dans des sous-réseaux alternatifs avec mise en réseau personnalisée. L'ajout de cette option au script précédent avec les mêmes valeurs d'exemple donne 20.

    • --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 exécutée sur le système Nitro et une version 1.9.0 ou une version ultérieure du VPC CNI module complémentaire Amazon. Pour de plus amples informations, veuillez consulter Attribuez davantage d'adresses IP aux EKS nœuds Amazon avec des préfixes. L'ajout de cette option au script précédent avec les mêmes valeurs d'exemple donne 110.

Vous pouvez également exécuter le script avec l'option --help permettant de voir toutes les options disponibles.

Note

Le maximum Pods Un script de calcul limite la valeur de retour en 110 fonction des seuils d'évolutivité de Kubernetes et des paramètres recommandés. Si votre type d'instance est supérieur à 30vCPUs, cette limite passe à250, un chiffre basé sur les tests internes de l'équipe d'EKSévolutivité d'Amazon. Pour plus d'informations, consultez le billet de blog intitulé « Le VPCCNIplugin Amazon augmente le nombre de pods par nœud ».