Associez plusieurs interfaces réseau aux pods - Amazon EKS

Aidez à améliorer cette page

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.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

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.

Associez plusieurs interfaces réseau aux pods

Par défaut, le plug-in Amazon VPC CNI attribue une adresse IP à chaque pod. Cette adresse IP est attachée à une interface elastic network qui gère tout le trafic entrant et sortant du pod. Pour augmenter la bande passante et les performances du débit de paquets par seconde, vous pouvez utiliser la fonction multi-NIC du VPC CNI pour configurer un pod multi-hébergement. Un pod multi-hébergement est un pod Kubernetes unique qui utilise plusieurs interfaces réseau (et plusieurs adresses IP). En exécutant un pod multi-hébergement, vous pouvez répartir le trafic de ses applications sur plusieurs interfaces réseau en utilisant des connexions simultanées. Cela est particulièrement utile pour les cas d'utilisation de l'intelligence artificielle (IA), du Machine Learning (ML) et du calcul haute performance (HPC).

Le schéma suivant montre un module multi-hébergement exécuté sur un nœud de travail avec plusieurs cartes d'interface réseau (NICs) utilisées.

Un module multiréseau avec deux interfaces réseau connectées, une interface réseau avec ENA et une interface réseau avec ENA et EFA

Contexte

Sur Amazon EC2, une interface réseau élastique est un composant réseau logique d'un VPC qui représente une carte réseau virtuelle. Pour de nombreux types d' EC2 instances, les interfaces réseau partagent une seule carte d'interface réseau (NIC) matérielle. Cette carte réseau unique dispose d'une bande passante et d'un débit de paquets par seconde maximum.

Si la fonctionnalité Multi-NIC est activée, le VPC CNI n'attribue pas d'adresses IP en masse, ce qu'il fait par défaut. Au lieu de cela, le VPC CNI attribue une adresse IP à une interface réseau sur chaque carte réseau à la demande lorsqu'un nouveau pod démarre. Ce comportement réduit le taux d'épuisement des adresses IP, qui est accru par l'utilisation de modules multihébergés. Étant donné que le VPC CNI attribue une adresse IP à la demande, le démarrage des pods peut prendre plus de temps sur les instances où la fonctionnalité multi-NIC est activée.

Considérations

  • Assurez-vous que votre cluster Kubernetes exécute la version VPC CNI ou ultérieure. 1.20.0 La fonctionnalité multi-NIC n'est disponible que dans la version 1.20.0 du VPC CNI ou ultérieure.

  • Activez la variable d'ENABLE_MULTI_NICenvironnement dans le plugin VPC CNI. Vous pouvez exécuter la commande suivante pour définir la variable et démarrer le déploiement du DaemonSet.

    • kubectl set env daemonset aws-node -n kube-system ENABLE_MULTI_NIC=true

  • Assurez-vous de créer des nœuds de travail dotés de plusieurs cartes d'interface réseau (NICs). Pour obtenir la liste des EC2 instances dotées de plusieurs cartes d'interface réseau, consultez la section Cartes réseau du guide de EC2 l'utilisateur Amazon.

  • Si la fonctionnalité Multi-NIC est activée, le VPC CNI n'attribue pas d'adresses IP en masse, ce qu'il fait par défaut. Étant donné que le VPC CNI attribue une adresse IP à la demande, le démarrage des pods peut prendre plus de temps sur les instances où la fonctionnalité multi-NIC est activée. Pour de plus amples informations, veuillez consulter la section précédente Contexte.

  • Lorsque la fonctionnalité Multi-NIC est activée, les pods ne disposent pas de plusieurs interfaces réseau par défaut. Vous devez configurer chaque charge de travail pour utiliser plusieurs cartes réseau. Ajoutez l'k8s.amazonaws.com/nicConfig: multi-nic-attachmentannotation aux charges de travail qui doivent comporter plusieurs interfaces réseau.

Considérations relatives à IPv6

  • Stratégie IAM personnalisée - Pour les IPv6 clusters, créez et utilisez la politique IAM personnalisée suivante pour le VPC CNI. Cette politique est spécifique à Multi-NIC. Pour des informations plus générales sur l'utilisation du VPC CNI avec des IPv6 clusters, consultez. En savoir plus sur IPv6 les adresses des clusters, des pods et des services

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonEKSCNIPolicyIPv6MultiNIC", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeInstances", "ec2:AssignIpv6Addresses", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeInstanceTypes", "ec2:UnassignIpv6Addresses", "ec2:AttachNetworkInterface", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Sid": "AmazonEKSCNIPolicyENITagIPv6MultiNIC", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*" } ] }
  • IPv6mécanisme de transition non disponible - Si vous utilisez la fonctionnalité multi-NIC, le VPC CNI n'attribue pas IPv4 d'adresse aux pods d'un cluster. IPv6 Dans le cas contraire, le VPC CNI attribue une IPv4 adresse hôte locale à chaque pod afin qu'un pod puisse communiquer avec des ressources externes dans un IPv4 autre Amazon VPC ou sur Internet.

Utilisation

Une fois que la fonctionnalité multi-NIC est activée dans le CNI du VPC et aws-node que les pods ont redémarré, vous pouvez configurer chaque charge de travail pour qu'elle soit multihébergée. L'exemple suivant d'une configuration YAML avec les annotations requises :

apiVersion: apps/v1 kind: Deployment metadata: name: orders-deployment namespace: ecommerce labels: app: orders spec: replicas: 3 selector: matchLabels: app: orders template: metadata: annotations: k8s.amazonaws.com/nicConfig: multi-nic-attachment labels: app: orders spec: ...

Questions fréquentes (FAQ)

1. Qu'est-ce qu'une carte d'interface réseau (NIC) ?

Une carte d'interface réseau (NIC), également simplement appelée carte réseau, est un périphérique physique qui permet la connectivité réseau pour le matériel de cloud computing sous-jacent. Dans EC2 les serveurs modernes, cela fait référence à la carte réseau Nitro. Une interface réseau élastique (ENI) est une représentation virtuelle de cette carte réseau sous-jacente.

Certains types d' EC2 instances en ont plusieurs NICs pour améliorer les performances en termes de bande passante et de débit de paquets. Dans de tels cas, vous pouvez attribuer des cartes réseau secondaires ENIs aux cartes réseau supplémentaires. Par exemple, l'ENI #1 peut fonctionner comme interface pour la carte réseau attachée à l'index 0 de la carte réseau, tandis que l'ENI #2 peut fonctionner comme interface pour la carte réseau connectée à un index de carte réseau distinct.

2. Qu'est-ce qu'un module multilogement ?

Un pod multi-hébergement est un pod Kubernetes unique doté de plusieurs interfaces réseau (et par conséquent de plusieurs adresses IP). Chaque interface réseau du pod est associée à une interface réseau élastique (ENI), et il s' ENIs agit de représentations logiques distinctes NICs sur le nœud de travail sous-jacent. Avec plusieurs interfaces réseau, un module multiréseau dispose d'une capacité de transfert de données supplémentaire, ce qui augmente également son taux de transfert de données.

Important

Le VPC CNI peut uniquement configurer des pods multi-hôtes sur des types d'instances qui en ont plusieurs. NICs

3. Pourquoi utiliser cette fonctionnalité ?

Si vous devez adapter les performances réseau de vos charges de travail basées sur Kubernetes, vous pouvez utiliser la fonctionnalité multi-cartes réseau pour exécuter des pods multi-hôtes qui s'interfacent avec tous les composants sous-jacents NICs auxquels un périphérique ENA est connecté. L'utilisation de cartes réseau supplémentaires augmente la capacité de bande passante et les performances de débit de paquets de vos applications en répartissant le trafic des applications sur plusieurs connexions simultanées. Cela est particulièrement utile pour les cas d'utilisation de l'intelligence artificielle (IA), du Machine Learning (ML) et du calcul haute performance (HPC).

4. Comment utiliser cette fonctionnalité ?

  1. Tout d'abord, vous devez vous assurer que votre cluster Kubernetes utilise VPC CNI version 1.20 ou ultérieure. Pour les étapes de mise à jour du VPC CNI en tant que module complémentaire EKS, consultez. Mettre à jour le Amazon VPC CNI (module complémentaire Amazon EKS)

  2. Ensuite, vous devez activer le support multi-NIC dans le VPC CNI à l'aide ENABLE_MULTI_NIC de la variable d'environnement.

  3. Ensuite, vous devez vous assurer de créer et de joindre des nœuds dotés de plusieurs cartes réseau. Pour obtenir la liste des types d' EC2 instances dotés de plusieurs cartes réseau, consultez la section Cartes réseau du guide de EC2 l'utilisateur Amazon.

  4. Enfin, vous configurez chaque charge de travail pour qu'elle utilise plusieurs interfaces réseau (pods multihébergés) ou qu'elle utilise une seule interface réseau.

5. Comment configurer mes charges de travail pour en utiliser plusieurs NICs sur un nœud de travail pris en charge ?

Pour utiliser des modules à plusieurs logements, vous devez ajouter l'annotation suivante :. k8s.amazonaws.com/nicConfig: multi-nic-attachment Cela associera un ENI de chaque carte réseau de l'instance sous-jacente au pod (un ou plusieurs mappages entre un pod et le NICs).

Si cette annotation est absente, le CNI VPC suppose que votre pod ne nécessite qu'une seule interface réseau et lui attribue une adresse IP provenant d'un ENI sur n'importe quelle carte réseau disponible.

6. Quels adaptateurs d'interface réseau sont compatibles avec cette fonctionnalité ?

Vous pouvez utiliser n'importe quel adaptateur d'interface réseau si au moins un ENA est connecté à la carte réseau sous-jacente pour le trafic IP. Pour plus d'informations sur l'ENA, consultez Elastic Network Adapter (ENA) dans le guide de EC2 l'utilisateur Amazon.

Configurations de périphériques réseau prises en charge :

  • les interfaces ENA fournissent toutes les fonctionnalités de réseau et de routage IP traditionnelles requises pour prendre en charge le réseau IP d’un VPC. Pour plus d'informations, consultez Activer la mise en réseau améliorée avec ENA sur vos EC2 instances.

  • Les interfaces EFA (EFA avec ENA) fournissent à la fois le dispositif ENA pour les réseaux IP et le dispositif EFA pour les communications à faible latence et haut débit.

Important

Si seul un adaptateur EFA est connecté à une carte réseau, le VPC CNI l'ignorera lors du provisionnement de la connectivité réseau pour un pod multiréseau. Toutefois, si vous combinez un adaptateur EFA uniquement avec un adaptateur ENA sur une carte réseau, le VPC CNI s'en chargera également sur cet appareil. ENIs Pour utiliser des interfaces EFA uniquement avec des clusters EKS, voir. Organisez une formation de machine learning sur Amazon EKS avec Elastic Fabric Adapter

7. Puis-je voir si un nœud de mon cluster est compatible avec l'ENA ?

Oui, vous pouvez utiliser la AWS CLI ou EC2 l'API pour récupérer des informations réseau concernant une EC2 instance de votre cluster. Cela indique si l'instance est compatible avec l'ENA ou non. Dans l'exemple suivant, remplacez <your-instance-id> par l'ID d' EC2 instance d'un nœud.

AWS Exemple de CLI :

aws ec2 describe-instances --instance-ids <your-instance-id> --query "Reservations[].Instances[].EnaSupport"

Exemple de sortie :

[ true ]

8. Puis-je voir les différentes adresses IP associées à un pod ?

Non, pas facilement. Cependant, vous pouvez utiliser nsenter depuis le nœud pour exécuter des outils réseau courants tels que ip route show et voir les adresses IP et interfaces supplémentaires.

9. Puis-je contrôler le nombre d'interfaces réseau pour mes pods ?

Non. Lorsque votre charge de travail est configurée pour en utiliser plusieurs NICs sur une instance prise en charge, un seul pod possède automatiquement une adresse IP provenant de chaque carte réseau de l'instance. Les pods à domicile unique seront également dotés d'une interface réseau connectée à une carte réseau de l'instance.

Important

Les cartes réseau auxquelles seul un périphérique EFA est connecté sont ignorées par le VPC CNI.

10. Puis-je configurer mes pods pour utiliser une carte réseau spécifique ?

Non, cela n'est pas pris en charge. Si un pod possède l'annotation appropriée, le VPC CNI le configure automatiquement pour utiliser chaque carte réseau dotée d'un adaptateur ENA sur le nœud de travail.

11. Cette fonctionnalité fonctionne-t-elle avec les autres fonctionnalités réseau VPC CNI ?

Oui, la fonctionnalité multi-NIC du VPC CNI fonctionne à la fois avec un réseau personnalisé et une découverte améliorée des sous-réseaux. Toutefois, les modules multihébergés n'utilisent pas les sous-réseaux ou groupes de sécurité personnalisés. Au lieu de cela, le VPC CNI attribue des adresses IP et des interfaces réseau aux pods multihébergés avec la même configuration de sous-réseau et de groupe de sécurité que le nœud. Pour plus d'informations sur la mise en réseau personnalisée, consultezDéployez des pods dans des sous-réseaux alternatifs avec un réseau personnalisé.

La fonctionnalité multi-NIC du VPC CNI ne fonctionne pas et ne peut pas être combinée avec les groupes de sécurité pour les pods.

12. Puis-je utiliser des politiques réseau avec cette fonctionnalité ?

Oui, vous pouvez utiliser les politiques réseau Kubernetes avec plusieurs cartes réseau. Les politiques réseau de Kubernetes limitent le trafic réseau à destination et en provenance de vos pods. Pour plus d'informations sur l'application de politiques réseau avec le VPC CNI, consultez. Limitez le trafic des pods grâce aux politiques réseau Kubernetes

13. La prise en charge de plusieurs cartes d'interface réseau est-elle activée en mode automatique EKS ?

La multicarte réseau n'est pas prise en charge pour les clusters en mode automatique EKS.