Connecter plusieurs interfaces réseau à des 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.

Connecter plusieurs interfaces réseau à des pods

Par défaut, le plug-in CNI Amazon VPC attribue une adresse IP à chaque pod. Cette adresse IP est associée à une interface réseau Elastic qui gère tout le trafic entrant et sortant du pod. Pour augmenter la bande passante et le débit de paquets par seconde, vous pouvez utiliser la fonctionnalité multi-NIC de CNI VPC pour configurer un pod multi-homed. Un pod multi-homed est un pod Kubernetes unique qui utilise plusieurs interfaces réseau (et plusieurs adresses IP). En exécutant un pod multi-homed, vous pouvez répartir le trafic de son application sur plusieurs interfaces réseau à l’aide de connexions simultanées. Cela est particulièrement utile pour les cas d’utilisation de l’intelligence artificielle (IA), de 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 pod multi-homed 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 maximale et d’un débit maximal de paquets par seconde.

Si la fonctionnalité multi-NIC est activée, le CNI VPC n’attribue pas d’adresses IP en masse, comme il le fait par défaut. Au lieu de cela, le CNI VPC 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 augmenté par l’utilisation de pods multi-homed. Étant donné que le CNI VPC attribue des adresses 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

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

  • Activez la variable d’environnement ENABLE_MULTI_NIC dans le plug-in CNI Amazon VPC. 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 CNI VPC n’attribue pas d’adresses IP en masse, comme il le fait par défaut. Étant donné que le CNI VPC attribue des adresses 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 la fonctionnalité multi-NIC. Ajoutez l’annotation k8s.amazonaws.com/nicConfig: multi-nic-attachment aux charges de travail qui doivent disposer de plusieurs interfaces réseau.

Considérations relatives à IPv6

  • Politique IAM personnalisée : pour les clusters IPv6, créez et utilisez la politique IAM personnalisée suivante pour le CNI VPC. Cette politique est spécifique à la fonctionnalité multi-NIC. Pour plus d’informations générales sur l’utilisation du CNI VPC avec les clusters IPv6, 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/*" } ] }
  • Mécanisme de transition IPv6 non disponible : si vous utilisez la fonctionnalité multi-NIC, le CNI VPC n’attribue pas d’adresse IPv4 aux pods d’un cluster IPv6. Sinon, le CNI Amazon VPC attribue une adresse IPv4 locale à chaque pod afin que celui-ci puisse communiquer avec des ressources IPv4 externes dans un autre Amazon VPC ou sur Internet.

Usage

Une fois la fonctionnalité multi-NIC activée dans le CNI Amazon VPC et les pods aws-node redémarrés, vous pouvez configurer chaque charge de travail pour qu’elle soit multi-homed. Voici un exemple de configuration YAML avec l’annotation requise :

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 appelée simplement carte réseau, est un périphérique physique qui permet la connectivité réseau pour le matériel informatique cloud sous-jacent. Dans EC2 les serveurs modernes, cela fait référence à la carte réseau Nitro. Une interface réseau Elastic (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 n° 1 peut fonctionner comme interface pour la carte NIC connectée à l’index de carte réseau 0, tandis que l’ENI n° 2 peut fonctionner comme interface pour la carte NIC connectée à un index de carte réseau distinct.

2. Qu’est-ce qu’un pod multi-homed ?

Un pod multi-homed est un pod Kubernetes unique doté de plusieurs interfaces réseau (et donc 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. Grâce à ses multiples interfaces réseau, un pod multi-homed dispose d’une capacité de transfert de données supplémentaire, ce qui augmente également son débit 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 en termes de débit de paquets dans 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), de 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 la version 1.20 ou ultérieure de CNI VPC. Pour connaître les étapes de mise à jour de CNI VPC en tant que module complémentaire EKS, consultez Mettre à jour le CNI Amazon VPC (module complémentaire Amazon EKS).

  2. Ensuite, vous devez activer la prise en charge multi-NIC dans le CNI Amazon VPC à l’aide de la variable d’environnement ENABLE_MULTI_NIC.

  3. Enfin, vous devez vous assurer de créer et de rejoindre des nœuds disposant 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 devez configurer chaque charge de travail pour qu’elle utilise soit plusieurs interfaces réseau (pods multi-homed), soit 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 pods multi-homed, 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 manquante, le CNI VPC suppose que votre pod ne nécessite qu’une seule interface réseau et lui attribue une adresse IP provenant d’une ENI sur n’importe quelle carte réseau disponible.

6. Quels adaptateurs d’interface réseau sont pris en charge avec cette fonctionnalité ?

Vous pouvez utiliser n’importe quel adaptateur d’interface réseau si vous disposez d’au moins un ENA 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 périphérique ENA pour la mise en réseau IP et le périphérique EFA pour une communication à faible latence et haut débit.

Important

Si une carte réseau ne dispose que d’un adaptateur EFA uniquement attaché, le CNI VPC l’ignorera lors de la fourniture d’une connectivité réseau pour un pod multi-hébergé. 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, consultez Exécuter un entraînement de machine learning sur Amazon EKS avec Elastic Fabric Adapter.

7. Puis-je voir si un nœud de mon cluster prend en charge 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 vous permettra de savoir si l’instance prend en charge ENA. 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 à partir du nœud pour exécuter des outils réseau courants tels que ip route show et voir les adresses IP et les 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. Sinon, les pods à connexion unique disposeront d’une interface réseau connectée à une carte réseau sur l’instance.

Important

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

10. Puis-je configurer mes pods pour qu’ils utilisent une carte réseau spécifique ?

Non, cela n’est pas pris en charge. Si un pod dispose de l’annotation appropriée, le CNI VPC le configure automatiquement pour utiliser toutes les cartes réseau avec un adaptateur ENA sur le composant master.

11. Cette fonctionnalité est-elle compatible avec les autres fonctionnalités réseau du CNI VPC ?

Oui, la fonctionnalité multi-cartes réseau du CNI VPC est compatible avec le réseau personnalisé et la détection améliorée des sous-réseaux. Cependant, les pods multi-homed n’utilisent pas les sous-réseaux personnalisés ni les groupes de sécurité. Au lieu de cela, le CNI VPC attribue des adresses IP et des interfaces réseau aux pods multi-homed 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, consultez Déploiement de pods dans des sous-réseaux alternatifs avec réseau personnalisé.

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

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 Kubernetes limitent le trafic réseau vers et depuis vos pods. Pour plus d’informations sur l’application des politiques réseau avec le CNI VPC EKS, consultez Limitation du trafic des pods à l’aide des politiques réseau Kubernetes.

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

Plusieurs cartes réseau ne sont pas prises en charge pour les clusters du mode automatique EKS.