View a markdown version of this page

Mode préfixe pour Linux - 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.

Mode préfixe pour Linux

Astuce

Découvrez les meilleures pratiques grâce aux ateliers Amazon EKS.

Amazon VPC CNI attribue des préfixes réseau aux interfaces réseau Amazon EC2 afin d'augmenter le nombre d'adresses IP disponibles pour les nœuds et d'augmenter la densité de pods par nœud. Vous pouvez configurer la version 1.9.0 ou ultérieure du module complémentaire Amazon VPC CNI pour attribuer des CIDR IPv4 et IPv6 au lieu d'attribuer des adresses IP secondaires individuelles aux interfaces réseau.

Le mode préfixe est activé par défaut sur les clusters IPv6 et est la seule option prise en charge. Le VPC CNI attribue un préfixe IPv6 /80 à un emplacement sur un ENI. Reportez-vous à la section IPv6 de ce guide pour plus d'informations.

Avec le mode d'attribution de préfixes, le nombre maximum d'interfaces réseau élastiques par type d'instance reste le même, mais vous pouvez désormais configurer Amazon VPC CNI pour attribuer des préfixes d'adresse IPv4 /28 (16 adresses IP), au lieu d'attribuer des adresses IPv4 individuelles aux emplacements des interfaces réseau. Lorsqu'il ENABLE_PREFIX_DELEGATION est défini sur true, le VPC CNI alloue une adresse IP à un pod à partir du préfixe attribué à un ENI. Veuillez suivre les instructions mentionnées dans le guide de l'utilisateur d'EKS pour activer le mode IP préfixe.

illustration de deux sous-réseaux de travail

Le nombre maximal d’adresses IP que vous pouvez attribuer à une interface réseau dépend du type d’instance. Chaque préfixe que vous attribuez à une interface réseau est considéré comme une adresse IP unique. Par exemple, une instance c5.large a une limite de 10 adresses IPv4 par interface réseau. Chaque interface réseau de cette instance possède une adresse IPv4 principale. Si une interface réseau ne possède pas d’adresses IPv4 secondaires, vous pouvez attribuer jusqu’à 9 préfixes à l’interface réseau. Pour chaque adresse IPv4 supplémentaire que vous attribuez à une interface réseau, vous pouvez attribuer un préfixe de moins à l’interface réseau. Consultez la documentation AWS EC2 sur les adresses IP par interface réseau et par type d'instance et sur l'attribution de préfixes aux interfaces réseau.

Lors de l'initialisation du nœud de travail, le CNI du VPC attribue un ou plusieurs préfixes à l'ENI principal. Le CNI préattribue un préfixe pour accélérer le démarrage du pod en maintenant un pool chaud. Le nombre de préfixes à conserver dans le pool chaud peut être contrôlé en définissant des variables d'environnement.

  • WARM_PREFIX_TARGET, le nombre de préfixes à attribuer au-delà des besoins actuels.

  • WARM_IP_TARGET, le nombre d'adresses IP à allouer au-delà des besoins actuels.

  • MINIMUM_IP_TARGET, le nombre minimum d'adresses IP disponibles à tout moment.

  • WARM_IP_TARGETet MINIMUM_IP_TARGET s'il est défini, il sera remplacé. WARM_PREFIX_TARGET

Au fur et à mesure que de nouveaux Pods seront programmés, des préfixes supplémentaires seront demandés pour l'ENI existant. Tout d'abord, le VPC CNI tente d'attribuer un nouveau préfixe à un ENI existant. Si l'ENI est à pleine capacité, le CNI du VPC tente d'attribuer un nouvel ENI au nœud. Les nouveaux ENI seront attachés jusqu'à ce que la limite maximale d'ENI (définie par le type d'instance) soit atteinte. Lorsqu'une nouvelle ENI est associée, ipamd alloue un ou plusieurs préfixes nécessaires pour conserver le paramètre WARM_PREFIX_TARGETWARM_IP_TARGET, etMINIMUM_IP_TARGET.

organigramme de la procédure d'attribution d'une adresse IP au pod

Recommandations

Utilisez le mode préfixe lorsque

Utilisez le mode préfixe si vous rencontrez un problème de densité de pods sur les nœuds de travail. Pour éviter les erreurs CNI du VPC, nous vous recommandons d'examiner les sous-réseaux pour détecter un bloc d'adresses contigu pour le préfixe /28 avant de passer en mode préfixe. Consultez la section «  Utiliser les réservations de sous-réseaux pour éviter la fragmentation des sous-réseaux (IPv4)  » pour plus de détails sur les réservations de sous-réseaux.

Pour des raisons de rétrocompatibilité, la limite max-pods est définie pour prendre en charge le mode IP secondaire. Pour augmenter la densité des pods, spécifiez la max-pods valeur dans Kubelet et --use-max-pods=false en tant que données utilisateur pour les nœuds. Pour plus d'informations, consultez la section Comment les MaxPods sont déterminés dans le guide de l'utilisateur Amazon EKS. Reportez-vous au guide de l'utilisateur d'EKS pour obtenir des exemples de données utilisateur.

./max-pods-calculator.sh --instance-type m5.large --cni-version ``1.9``.0 --cni-prefix-delegation-enabled

Le mode d'attribution de préfixe est particulièrement pertinent pour les utilisateurs de réseaux personnalisés CNI où l'ENI principal n'est pas utilisé pour les pods. Grâce à l'attribution de préfixes, vous pouvez toujours associer plus d'adresses IP à presque tous les types d'instances Nitro, même sans l'ENI principal utilisé pour les pods.

Évitez le mode préfixe lorsque

Si votre sous-réseau est très fragmenté et que les adresses IP disponibles sont insuffisantes pour créer des préfixes /28, évitez d'utiliser le mode préfixe. La pièce jointe du préfixe peut échouer si le sous-réseau à partir duquel le préfixe est produit est fragmenté (sous-réseau très utilisé avec des adresses IP secondaires dispersées). Ce problème peut être évité en créant un nouveau sous-réseau et en réservant un préfixe.

En mode préfixe, le groupe de sécurité attribué aux nœuds de travail est partagé par les Pods. Envisagez d'utiliser des groupes de sécurité pour les pods si vous avez des exigences de sécurité pour assurer la conformité en exécutant des applications présentant des exigences de sécurité réseau variables sur des ressources informatiques partagées.

Utiliser des types d'instances similaires dans le même groupe de nœuds

Votre groupe de nœuds peut contenir de nombreux types d'instances. Si le nombre maximum de pods d'une instance est faible, cette valeur est appliquée à tous les nœuds du groupe de nœuds. Envisagez d'utiliser des types d'instances similaires dans un groupe de nœuds pour optimiser l'utilisation des nœuds. Nous vous recommandons de configurer node.kubernetes. io/instance-saisissez la partie des exigences de l'API du provisionneur si vous utilisez Karpenter pour la mise à l'échelle automatique des nœuds.

Avertissement

Le nombre maximum de pods pour tous les nœuds d'un groupe de nœuds particulier est défini par le nombre maximum de pods le plus faible de tous les types d'instances du groupe de nœuds.

Configurer WARM_PREFIX_TARGET pour conserver les adresses IPv4

La valeur par défaut du manifeste d'installation WARM_PREFIX_TARGET est 1. Dans la plupart des cas, la valeur recommandée de 1 pour WARM_PREFIX_TARGET fournira une bonne combinaison de temps de lancement rapide du pod tout en minimisant les adresses IP inutilisées attribuées à l'instance.

Si vous avez besoin de conserver davantage les adresses IPv4 par nœud, utilisez WARM_IP_TARGET et MINIMUM_IP_TARGET paramètres, qui sont prioritaires WARM_PREFIX_TARGET lors de la configuration. En réglant une valeur inférieure WARM_IP_TARGET à 16, vous pouvez empêcher le CNI de conserver un préfixe excédentaire entier attaché.

Préférez attribuer de nouveaux préfixes plutôt que de joindre un nouvel ENI

L'attribution d'un préfixe supplémentaire à une ENI existante est une opération d'API EC2 plus rapide que la création et l'attachement d'une nouvelle ENI à l'instance. L'utilisation de préfixes améliore les performances tout en étant économe en termes d'allocation d'adresses IPv4. L'ajout d'un préfixe prend généralement moins d'une seconde, tandis que l'ajout d'un nouvel ENI peut prendre jusqu'à 10 secondes. Dans la plupart des cas d'utilisation, le CNI n'aura besoin que d'un seul ENI par nœud de travail lorsqu'il s'exécute en mode préfixe. Si vous pouvez vous permettre (dans le pire des cas) jusqu'à 15 adresses IP inutilisées par nœud, nous vous recommandons vivement d'utiliser le nouveau mode réseau d'attribution de préfixes et de réaliser les gains de performances et d'efficacité qui en découlent.

Utiliser les réservations de sous-réseaux pour éviter la fragmentation des sous-réseaux (IPv4)

Lorsqu'EC2 attribue un préfixe IPv4 /28 à un ENI, il doit s'agir d'un bloc contigu d'adresses IP provenant de votre sous-réseau. Si le sous-réseau à partir duquel le préfixe est généré est fragmenté (sous-réseau très utilisé avec des adresses IP secondaires dispersées), la pièce jointe du préfixe peut échouer et le message d'erreur suivant s'affichera dans les journaux CNI du VPC :

failed to allocate a private IP/Prefix address: InsufficientCidrBlocks: There are not enough free cidr blocks in the specified subnet to satisfy the request.

Pour éviter la fragmentation et disposer d'un espace contigu suffisant pour créer des préfixes, vous pouvez utiliser les réservations d'adresse CIDR des sous-réseaux VPC pour réserver de l'espace IP au sein d'un sous-réseau à l'usage exclusif des préfixes. Une fois que vous avez créé une réservation, le plug-in VPC CNI appelle les API EC2 pour attribuer des préfixes qui sont automatiquement attribués à partir de l'espace réservé.

Il est recommandé de créer un nouveau sous-réseau, de réserver de l'espace pour les préfixes et d'activer l'attribution de préfixes avec VPC CNI pour les nœuds de travail exécutés dans ce sous-réseau. Si le nouveau sous-réseau est dédié uniquement aux pods exécutés dans votre cluster EKS avec l'attribution de préfixe VPC CNI activée, vous pouvez ignorer l'étape de réservation de préfixe.

Évitez de rétrograder VPC CNI

Le mode Préfixe fonctionne avec les versions 1.9.0 et ultérieures de VPC CNI. La rétrogradation du module complémentaire Amazon VPC CNI vers une version inférieure à la version 1.9.0 doit être évitée une fois que le mode préfixe est activé et que des préfixes sont attribués aux ENI. Vous devez supprimer et recréer des nœuds si vous décidez de rétrograder le VPC CNI.

Remplacez tous les nœuds lors de la transition vers la délégation de préfixes

Il est vivement recommandé de créer de nouveaux groupes de nœuds pour augmenter le nombre d'adresses IP disponibles plutôt que de remplacer progressivement les nœuds de travail existants. Bouclez et vidangez tous les nœuds existants pour expulser en toute sécurité tous vos Pods existants. Pour éviter les interruptions de service, nous vous suggérons de mettre en œuvre des budgets d'interruption des modules sur vos clusters de production pour les charges de travail critiques. Les pods des nouveaux nœuds se verront attribuer une adresse IP à partir d'un préfixe attribué à une ENI. Après avoir vérifié que les pods sont en cours d'exécution, vous pouvez supprimer les anciens nœuds et groupes de nœuds. Si vous utilisez des groupes de nœuds gérés, veuillez suivre les étapes mentionnées ici pour supprimer un groupe de nœuds en toute sécurité.