Choix d'un type d'instance Amazon EC2 - Amazon EKS

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 tout le monde.

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 d'un type d'instance Amazon EC2

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 obtenir une liste, consultez les types d'instances disponibles dans le guide de l'utilisateur Amazon EC2 et les 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 actuellement pas en charge les familles g5g et mac.

  • Les AMI Arm et Amazon EKS non accélérées ne prennent pas en charge les familles g3, g4, inf et p.

  • Les AMI Amazon EKS accélérées ne prennent pas en charge les familles a, c, hpc, m et t.

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

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

En général, il est préférable d'utiliser un nombre restreint de grandes instances, surtout si vous disposez de beaucoup de 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 LinuxWindows et Bottlerocket. Avant de créer des instances Windows, consultez Activation de la prise en charge de Windows pour votre cluster Amazon EKS.

Architecture matérielle

Avez-vous besoin de x86 ou Arm ? Vous ne pouvez déployer que Linux sur Arm. Avant de déployer des instances Arm, consultez AMI Amazon Linux Arm optimisées pour Amazon EKS. Avez-vous besoin d'instances reposant sur le système Nitro System (Linux ou Windows) ou qui ont des fonctionnalités accélérées ? Si vous avez besoin de capacités accélérées, vous ne pouvez utiliser Linux qu'avec Amazon EKS.

Nombre maximal d'Pods

Étant donné que 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 qui détermine le nombre de Pods pouvant fonctionner sur l'instance. Pour déterminer manuellement le nombre de Pods pris en charge par un type d'instance, consultez Nombre maximal de Pods recommandé par Amazon EKS pour chaque type d'instance Amazon EC2.

Note

Si vous utilisez une AMI Amazon Linux 2 optimisée pour Amazon EKS v20220406 ou plus récent, vous pouvez utiliser un nouveau type d'instance sans mettre à niveau vers la dernière AMI. Pour ces AMI, l'AMI calcule automatiquement la valeur max-pods nécessaire si elle n'est pas répertorié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-pods pour de tels types doivent encore être ajoutées à eni-max-pods.txt dans notre 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 les Pods. Pour attribuer un nombre significativement plus élevé d'adresses IP à vos instances, la version 1.9.0 ou 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 plus d’informations, consultez Augmenter le nombre d'adresses IP disponibles pour vos nœuds Amazon EC2. Pour attribuer le plus grand nombre d'adresses IP à vos instances, vous devez avoir installé la version 1.10.1 ou une version ultérieure du module complémentaire Amazon VPC CNI dans votre cluster et déployer le cluster avec la famille IPv6.

Famille d'IP

Vous pouvez utiliser n'importe quel type d'instance pris en charge lorsque vous utilisez la famille IPv4 pour un cluster, ce qui permet à votre cluster d'attribuer des adresses IPv4 privées à vos 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. Seul IPv4 est pris en charge pour les instances Windows. Votre cluster doit utiliser la version 1.10.1 ou une version ultérieure du module complémentaire Amazon VPC CNI. Pour plus d'informations sur l'utilisation de IPv6, consultez IPv6adresses pour les clustersPods, et 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 plus d’informations, consultez Utilisation du module complémentaire Amazon VPC CNI plugin for Kubernetes Amazon EKS. 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 fonctions. Vous pouvez afficher les fonctions prises en charge par les différentes versions dans Changelog sur GitHub.

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

Tous les types d'instance ne sont pas toutes 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 des types d'instance spécifiques sont pris en charge. Pour plus d’informations, consultez Groupes de sécurité pour Pods.

Nombre maximal de Pods recommandé par Amazon EKS pour chaque type d'instance Amazon EC2

Étant donné que 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 qui détermine le nombre de Pods pouvant fonctionner sur l'instance. Amazon EKS fournit un script que vous pouvez télécharger et exécuter pour déterminer le nombre maximum de Pods recommandé par Amazon EKS à 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 nombre maximum de Pods. Vous pouvez utiliser le nombre renvoyé dans ces étapes pour activer des capacités telles que l'attribution d'adresses IP aux Pods 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é composé de 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 par le type d'instance que vous prévoyez de déployer et 1.9.0-eksbuild.1 par votre version du module complémentaire CNI Amazon VPC. Pour déterminer la version de votre module complémentaire, consultez les procédures de mise à jour dans Utilisation du module complémentaire Amazon VPC CNI plugin for Kubernetes Amazon EKS.

    ./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 connaître le nombre maximum de Pods pris en charge lors de l'utilisation des capacités facultatives.

    • --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 plus d’informations, consultez Mise en réseau personnalisée pour les pods. 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 qui fonctionne sur le système Nitro et la version 1.9.0 ou ultérieure du module complémentaire CNI Amazon VPC. Pour plus d’informations, consultez Augmenter le nombre d'adresses IP disponibles pour vos nœuds Amazon EC2. 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 script de calcul du nombre maximal de Pods limite la valeur renvoyée à 110 en fonction des seuils de capacité de mise à l'échelle de Kubernetes et des paramètres recommandés. Si votre type d'instance comporte plus de 30 vCPUs, cette limite passe à 250, 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 (français non garanti).