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.
Augmenter le nombre d'adresses IP disponibles pour vos nœuds Amazon EC2
Chaque instance Amazon EC2 prend en charge un nombre maximum d'interfaces réseau élastiques et un nombre maximum d'adresses IP pouvant être attribuées à chaque interface réseau. Chaque nœud a besoin d'une adresse IP pour chaque interface réseau. Toutes les autres adresses IP disponibles peuvent être attribuées aux Pods
. Chaque Pod
a besoin de sa propre adresse IP. Par conséquent, vous pouvez avoir des nœuds qui disposent de ressources de calcul et de mémoire disponibles, mais qui ne peuvent pas accueillir d'autres Pods
parce que le nœud n'a plus d'adresses IP à attribuer à Pods
.
Dans cette rubrique, vous allez apprendre à augmenter de manière significative le nombre d'adresses IP que les nœuds peuvent attribuer à Pods
en attribuant des préfixes IP, plutôt que d'attribuer des adresses IP secondaires individuelles à vos nœuds. Chaque préfixe inclut plusieurs adresses IP. Si vous ne configurez pas votre cluster pour l'attribution de préfixes IP, votre cluster doit effectuer davantage d'appels à l'interface de programmation d'applications (API) Amazon EC2 afin de configurer les interfaces réseau et les adresses IP nécessaires à la connectivité Pod. Au fur et à mesure que la taille des clusters augmente, la fréquence de ces appels d'API peut entraîner des temps de lancement de Pod et d'instances plus longs. Cela entraîne des retards de mise à l'échelle pour répondre à la demande d'applications volumineuses et épineuses, et ajoute des coûts et des frais généraux de gestion, car vous devez allouer des clusters et des VPC supplémentaires pour répondre aux exigences de mise à l'échelle. Pour plus d'informations, consultez la section Seuils Kubernetes d'évolutivité
Considérations
-
Chaque type d'instance Amazon EC2 prend en charge un nombre maximum de Pods. Si votre groupe de nœuds gérés est composé de plusieurs types d'instance, le plus petit nombre de Pods maximum pour une instance dans le cluster est appliqué à tous les nœuds du cluster.
-
Par défaut, le nombre maximum de
Pods
que vous pouvez exécuter sur un nœud est de 110, mais vous pouvez modifier ce nombre. Si vous modifiez le numéro et que vous disposez d'un groupe de nœuds géré existant, la prochaine mise à jour d'AMI ou de modèle de lancement de votre groupe de nœuds entraînera la création de nouveaux nœuds avec la valeur modifiée. -
Lorsque vous passez de l'attribution d'adresses IP à l'attribution de préfixes IP, nous vous recommandons de créer de nouveaux groupes de nœuds afin d'augmenter le nombre d'adresses IP disponibles, plutôt que de remplacer progressivement les nœuds existants. L'exécution Pods sur un nœud auquel des adresses IP et des préfixes ont été attribués peut entraîner des incohérences dans la capacité des adresses IP annoncée, ce qui a un impact sur les charges de travail futures sur le nœud. Pour connaître la méthode recommandée pour effectuer la transition, consultez Remplacer tous les nœuds lors de la migration du mode IP secondaire vers le mode Délégation de préfixe ou vice versa
dans le guide des meilleures pratiques Amazon EKS. -
Pour les clusters dotés de nœuds Linux uniquement.
-
Une fois que vous avez configuré le module complémentaire pour attribuer des préfixes aux interfaces réseau, vous ne pouvez pas rétrograder votre module complémentaire Amazon VPC CNI plugin for Kubernetes vers une version inférieure à
1.9.0
(ou1.10.1
) sans supprimer tous les nœuds de tous les groupes de nœuds de votre cluster. -
Si vous utilisez également des groupes de sécurité pour Pods, avec
POD_SECURITY_GROUP_ENFORCING_MODE
=standard
etAWS_VPC_K8S_CNI_EXTERNALSNAT
=false
, lorsque vos Pods communiquent avec des points de terminaison extérieurs à votre VPC, les groupes de sécurité du nœud sont utilisés, plutôt que les groupes de sécurité que vous avez attribués à vos Pods.Si vous utilisez également des groupes de sécurité pour Pods, avec
POD_SECURITY_GROUP_ENFORCING_MODE
=strict
, lorsque vosPods
communiquent avec des points de terminaison extérieurs à votre VPC, les groupes de sécurité dePod's
sont utilisés.
-
Prérequis
-
Un cluster existant. Pour en déployer un, consultez Création d'un cluster Amazon EKS.
-
Les sous-réseaux dans lesquels se trouvent vos nœuds Amazon EKS doivent comporter suffisamment de blocs de routage inter-domaines sans classe (CIDR) contigus
/28
(pour les clustersIPv4
) ou/80
(pour les clustersIPv6
). Vous ne pouvez avoir que des nœuds Linux dans un clusterIPv6
. L'utilisation de préfixes IP peut échouer si les adresses IP sont dispersées dans le CIDR du sous-réseau. Nous vous recommandons la procédure suivante :-
L'utilisation d'une réservation CIDR de sous-réseau afin que, même si des adresses IP comprises dans la plage réservée sont encore utilisées, elles ne soient pas réattribuées lors de leur libération. Cela permet de s'assurer que les préfixes sont disponibles pour l'allocation sans segmentation.
-
Utilisez de nouveaux sous-réseaux spécifiquement utilisés pour exécuter les charges de travail auxquelles les préfixes IP sont attribués. Les charges de travail Windows et Linux peuvent être exécutées dans le même sous-réseau lors de l'attribution des préfixes IP.
-
-
Pour attribuer des préfixes IP à vos nœuds, ceux-ci doivent être basés sur AWS Nitro. Les instances qui ne sont pas basées sur Nitro continuent d'allouer des adresses IP secondaires individuelles, mais ont un nombre nettement inférieur d'adresses IP à attribuer aux Pods par rapport aux instances Nitro-based.
-
Pour les clusters avec des nœuds Linux uniquement : si votre cluster est configuré pour la famille
IPv4
, la version1.9.0
ou une version ultérieure du module complémentaire Amazon VPC CNI plugin for Kubernetes doit être installée. Vous pouvez vérifier votre version actuelle à l'aide de la commande suivante.kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2
Si votre cluster est configuré pour la famille
IPv6
, la version1.10.1
du module complémentaire doit être installée. Si la version de votre plugin est antérieure aux versions requises, vous devez la mettre à jour. Pour en savoir plus, consultez les sections de mise à jour de Utilisation du module complémentaire Amazon VPC CNI plugin for Kubernetes Amazon EKS. -
Pour les clusters avec des nœuds Windows uniquement
-
La version de votre cluster et de sa plateforme doit être égale ou ultérieure aux versions indiquées dans le tableau suivant. Pour mettre à jour la version de votre cluster, consultez Mettre à jour le cluster existant vers la nouvelle version de Kubernetes. Si votre cluster ne dispose pas de la version minimale de la plateforme, vous ne pouvez pas attribuer de préfixes IP à vos nœuds tant qu'Amazon EKS n'a pas mis à jour votre version de la plateforme.
Version de Kubernetes Version de la plateforme 1.27
eks.3
1.26
eks.4
1.25
eks.5
Vous pouvez vérifier votre version actuelle de Kubernetes et de la plateforme en remplaçant
dans la commande suivante par le nom de votre cluster et en exécutant la commande modifiée :my-cluster
aws eks describe-cluster --name
.my-cluster
--query 'cluster.{"Kubernetes Version": version, "Platform Version": platformVersion}' -
Prise en charge de Windows activée pour votre cluster. Pour plus d’informations, consultez Déployer Windows des nœuds sur des clusters EKS.
-
Pour augmenter le nombre d'adresses IP disponibles pour vos nœuds Amazon EC2
-
Configurez votre cluster pour attribuer des préfixes d'adresses IP aux nœuds. Effectuez la procédure dans l'onglet correspondant au système d'exploitation de votre nœud.
-
Une fois que vos nœuds sont déployés, affichez les nœuds de votre cluster.
kubectl get nodes
L'exemple qui suit illustre un résultat.
NAME STATUS ROLES AGE VERSION ip-
192-168-22-103
.region-code
.compute.internal Ready <none>19m
v1.XX.X-eks-6b7464
ip-192-168-97-94
.region-code
.compute.internal Ready <none>19m
v1.XX.X-eks-6b7464
-
Décrivez l'un des nœuds pour déterminer la valeur de
max-pods
pour le nœud et le nombre d'adresses IP disponibles. Remplacez
par l'adresse192.168.30.193
IPv4
dans le nom de l'un de vos nœuds renvoyés dans la sortie précédente.kubectl describe node ip-
192-168-30-193
.region-code
.compute.internal | grep 'pods\|PrivateIPv4Address'L'exemple qui suit illustre un résultat.
pods:
110
vpc.amazonaws.com/PrivateIPv4Address:144
Dans la sortie précédente,
110
est le nombre maximum de Pods que Kubernetes déploiera sur le nœud, même si144
adresses IP sont disponibles.