Je souhaite configurer le plug-in Container Network Interface (CNI) Amazon Virtual Private Cloud (Amazon VPC) pour utiliser un numéro de contrôle d'adresse IP dans les sous-réseaux VPC avec Amazon Elastic Kubernetes Service (Amazon EKS).
Brève description
L'un des principaux composants du CNI Amazon VPC est le démon L-IPAM qui attribue des adresses IP aux nœuds.
Si un nouveau pod est planifié sur un nœud, l'exécution du conteneur invoque le binaire CNI. Le binaire CNI appelle le L-IPAMD pour obtenir une adresse IP pour le nouveau pod. Le pod suit ensuite les interfaces réseau Elastic et les adresses IP attachées à l'instance.
Vous pouvez utiliser certaines variables de configuration pour contrôler le nombre d'interfaces réseau et d'adresses IP gérées. Pour en savoir plus, consultez les pages WARM_ENI_TARGET, WARM_IP_TARGET and MINIMUM_IP_TARGET et WARM_PREFIX_TARGET, WARM_IP_TARGET and MINIMUM_IP_TARGET sur le site Web de GitHub.
Résolution
Vous trouverez ci-dessous les meilleures pratiques pour chacune des variables de configuration qui contrôlent la maintenance des interfaces réseau et des adresses IP.
WARM_ENI_TARGET
Utilisez la variable WARM_ENI_TARGET pour déterminer le nombre d'interfaces réseau Elastic que le L-IPAMD garde disponibles. Grâce à cela, une adresse IP peut être immédiatement attribuée aux pods lorsqu'ils sont planifiés sur un nœud.
Voici les meilleures pratiques pour WARM_ENI_TARGET :
- Vérifiez le type d'instance du composant master et le nombre maximum d'interfaces réseau et d'adresses IPv4 privées par interface. Il est ainsi possible d’éviter l'épuisement des adresses IP de sous-réseau disponibles.
- S’il est prévu que votre application évolue considérablement, utilisez WARM_ENI_TARGET pour prendre rapidement en charge les pods nouvellement planifiés.
WARM_IP_TARGET
Utilisez la variable WARM_IP_TARGET pour vous assurer que vous disposez toujours d'un nombre défini d'adresses IP disponibles dans le groupe chaud du L-IPAMD.
Voici les meilleures pratiques pour WARM_IP_TARGET :
- Pour les clusters à faible productivité, utilisez WARM_IP_TARGET. Ainsi, seul le nombre d'adresses IP requis sera attribué à l'interface réseau.
- N'utilisez pas ce paramètre pour les clusters volumineux ou si le cluster présente un taux de désabonnement élevé des pods. Ce paramètre peut entraîner des appels supplémentaires à l'API Amazon Elastic Compute Cloud (Amazon EC2) et peut limiter les requêtes. Il est recommandé de définir une valeur MINIMUM_IP_TARGET lorsque vous utilisez WARM_IP_TARGET.
- Lorsqu'une valeur MINIMUM_IP_TARGET est définie, il est recommandé que WARM_IP_TARGET soit supérieur à 0.
MINIMUM_IP_TARGET
Utilisez la variable MINIMUM_IP_TARGET pour vous assurer qu'un nombre minimum d'adresses IP est attribué à un nœud lors de sa création. Cette variable est généralement utilisée avec la variable WARM_IP_TARGET.
Voici les meilleures pratiques pour MINIMUM_IP_TARGET :
- Si vous connaissez le nombre minimum de pods que vous souhaitez exécuter par nœud, utilisez MINIMUM_IP_TARGET. Vous pouvez ainsi garantir que le nombre d'adresses IP requis sera attribué.
- Définissez cette variable avec WARM_IP_TARGET pour vous assurer que des adresses IP sont disponibles sur le nœud pour les futurs pods.
WARM_PREFIX_TARGET
Utilisez la variable WARM_PREFIX_TARGET pour vous assurer qu'un nombre défini de préfixes (blocs CIDR /28) est toujours ajouté à l'interface réseau de l'instance. Vous pouvez uniquement utiliser WARM_PREFIX_TARGET pour la version 1.9.0 ou ultérieure de CNI, et vous devez activer la fonctionnalité d'attribution de préfixe d'adresse IP de CNI Amazon VPC.
Voici les meilleures pratiques pour WARM_PREFIX_TARGET :
-
Si vous utilisez l'attribution de préfixe d'adresse IP, vérifiez que la variable WARM_PREFIX_TARGET est définie sur une valeur supérieure ou égale à 1. Si elle est définie sur 0, vous obtiendrez le message d'erreur suivant :
« Erreur : Setting WARM_PREFIX_TARGET = 0 is not supported while WARM_IP_TARGET/MINIMUM_IP_TARGET is not set. Please configure either one of the WARM_{PREFIX/IP}_TARGET or MINIMUM_IP_TARGET env variables. »
-
Pour les sous-réseaux plus petits, utilisez WARM_IP_TARGET avec WARM_PREFIX_TARGET. Vous éviterez ainsi d’attribuer un trop grand nombre de préfixes susceptibles d'épuiser les adresses IP disponibles.
Pour en savoir plus sur la manière dont ces variables de configuration affectent l'utilisation des adresses IP, consultez la section CNI Configuration Variables sur le site Web de GitHub.