Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Conexión de múltiples interfaces de red a pods
De forma predeterminada, el complemento de la CNI de Amazon VPC asigna una dirección IP a cada pod. Esta dirección IP está conectada a una interfaz de red elástica que gestiona todo el tráfico entrante y saliente del pod. Para aumentar el ancho de banda y el rendimiento de la tasa de paquetes por segundo, puede utilizar la característica de NIC múltiple de la CNI de la VPC para configurar un pod con varios hosts. Un pod con múltiples hosts es un único pod de Kubernetes que utiliza varias interfaces de red (y varias direcciones IP). Al ejecutar un pod con varios hosts, puede distribuir el tráfico de sus aplicaciones entre varias interfaces de red mediante conexiones simultáneas. Esto resulta especialmente útil para los casos de uso de inteligencia artificial (IA), machine learning (ML) y computación de alto rendimiento (HPC).
En el siguiente diagrama, se muestra un pod con varios hosts que se ejecuta en un nodo de trabajo con varias tarjetas de interfaz de red (NIC) en uso.

Introducción
En Amazon EC2, una interfaz de red elástica es un componente de red lógico en una VPC que representa una tarjeta de red virtual. Para muchos tipos de instancias de EC2, las interfaces de red comparten una única tarjeta de interfaz de red (NIC) en el hardware. Esta NIC única tiene un ancho de banda máximo y una tasa máxima de paquetes por segundo.
Si la característica de NIC múltiple está habilitada, la CNI de la VPC no asigna direcciones IP en bloque, lo que hace de forma predeterminada. En su lugar, la CNI de la VPC asigna una dirección IP a una interfaz de red en cada tarjeta de red bajo demanda cuando se inicia un nuevo pod. Este comportamiento reduce la tasa de agotamiento de las direcciones IP, que aumenta con el uso de pods con varios hosts. Debido a que la CNI de la VPC asigna direcciones IP bajo demanda, los pods podrían tardar más en iniciarse en las instancias con la característica de NIC múltiple habilitada.
Consideraciones
-
Asegúrese de que su clúster de Kubernetes esté ejecutando la versión
1.20.0
, o posterior, de la CNI de la VPC. La característica de NIC múltiple solo está disponible en la versión1.20.0
de la CNI de la VPC o posterior. -
Habilite la variable de entorno
ENABLE_MULTI_NIC
en el complemento de la CNI de la VPC. Puede ejecutar el siguiente comando para establecer la variable e iniciar la implementación del DaemonSet.-
kubectl set env daemonset aws-node -n kube-system ENABLE_MULTI_NIC=true
-
-
Asegúrese de crear nodos de trabajo que tengan varias tarjetas de interfaz de red (NIC). Para obtener una lista de las instancias de EC2 que tienen varias tarjetas de interfaz de red, consulte Tarjetas de red en la Guía del usuario de Amazon EC2.
-
Si la característica de NIC múltiple está habilitada, la CNI de la VPC no asigna direcciones IP en bloque, lo que hace de forma predeterminada. Debido a que la CNI de la VPC asigna direcciones IP bajo demanda, los pods podrían tardar más en iniciarse en las instancias con la característica de NIC múltiple habilitada. Para obtener más información, consulte la sección Introducción anterior.
-
Con la característica de NIC múltiple habilitada, los pods no tienen varias interfaces de red de forma predeterminada. Debe configurar cada carga de trabajo para usar varias NIC. Agregue la anotación
k8s.amazonaws.com/nicConfig: multi-nic-attachment
a las cargas de trabajo que deben tener varias interfaces de red.
Consideraciones de IPv6
-
Política de IAM personalizada: en el caso de los clústeres de
IPv6
, cree y utilice la siguiente política de IAM personalizada para la CNI de la VPC. Esta política es específica de NIC múltiple. Para obtener más información general sobre el uso de la CNI de la VPC con clústeres deIPv6
, consulte Información sobre la asignación de direcciones IPv6 a clústeres, pods y servicios.{ "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/*" } ] }
-
Mecanismo de transición de
IPv6
no disponible: si utiliza la característica de NIC múltiple, la CNI de la VPC no asigna una direcciónIPv4
a los pods de un clúster deIPv6
. De lo contrario, la CNI de la VPC asigna una direcciónIPv4
local de host a cada pod para que puedan comunicarse con recursos deIPv4
externos en otra Amazon VPC o en Internet.
Uso
Una vez que la característica de NIC múltiple esté habilitada en la CNI de la VPC y se hayan reiniciado los pods de aws-node
, puede configurar cada carga de trabajo para que tenga varios hosts. El siguiente es un ejemplo de una configuración de YAML con la anotación requerida:
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: ...
Preguntas frecuentes
1. ¿Qué es una tarjeta de interfaz de red (NIC)?
Una tarjeta de interfaz de red (NIC), también denominada simplemente tarjeta de red, es un dispositivo físico que permite la conectividad de red para el hardware de computación en la nube subyacente. En los servidores de EC2 modernos, se refiere a la tarjeta de red Nitro. Una interfaz de red elástica (ENI) es una representación virtual de esta tarjeta de red subyacente.
Algunos tipos de instancias de EC2 tienen varias NIC para mayor ancho de banda y rendimiento de tasa de paquetes. Para tales instancias, puede asignar ENI secundarias a las tarjetas de red adicionales. Por ejemplo, la ENI n.° 1 puede funcionar como interfaz para la NIC conectada al índice de tarjeta de red 0, mientras que la ENI n.° 2 puede funcionar como interfaz para la NIC conectada a un índice de tarjeta de red separado.
2. ¿Qué es un pod con múltiples hosts?
Un pod con múltiples hosts es un único pod de Kubernetes que utiliza varias interfaces de red (y, en consecuencia, varias direcciones IP). Cada interfaz de red del pod está asociada a una interfaz de red elástica (ENI), y estas ENI son representaciones lógicas de NIC independientes en el nodo de trabajo subyacente. Con varias interfaces de red, un pod con varios hosts tiene una capacidad de transferencia de datos adicional, lo que también aumenta su tasa de transferencia de datos.
importante
La CNI de la VPC solo puede configurar pods con varios hosts en tipos de instancias que tengan varias NIC.
3. ¿Por qué debo utilizar esta característica?
Si necesita escalar el rendimiento de la red en sus cargas de trabajo basadas en Kubernetes, puede utilizar la característica de NIC múltiple para ejecutar pods con varios hosts que interactúen con todas las NIC subyacentes que tengan un dispositivo ENA conectado. El uso de tarjetas de red adicionales aumenta la capacidad de ancho de banda y el rendimiento de la velocidad de paquetes de sus aplicaciones al distribuir el tráfico de las aplicaciones entre varias conexiones simultáneas. Esto resulta especialmente útil para los casos de uso de inteligencia artificial (IA), machine learning (ML) y computación de alto rendimiento (HPC).
4. ¿Cómo utilizo esta característica?
-
En primer lugar, debe asegurarse de que su clúster de Kubernetes utilice la versión 1.20 o posterior de la CNI de la VPC. Para conocer los pasos para actualizar la CNI de la VPC como un complemento de EKS, consulte Cómo actualizar la CNI de Amazon VPC (complemento de Amazon EKS).
-
A continuación, debe habilitar la compatibilidad con varias NIC en la CNI de la VPC mediante la variable de entorno
ENABLE_MULTI_NIC
. -
A continuación, debe asegurarse de crear y unir nodos que tengan varias tarjetas de red. Para obtener una lista de los tipos de instancias de EC2 que tienen varias tarjetas de red, consulte Tarjetas de red en la Guía del usuario de Amazon EC2.
-
Por último, debe configurar cada carga de trabajo para que utilice varias interfaces de red (pods con varios hosts) o una única interfaz de red.
5. ¿Cómo configuro mis cargas de trabajo para usar varias NIC en un nodo de trabajo compatible?
Para usar pods con varios hosts, debe agregar la siguiente anotación: k8s.amazonaws.com/nicConfig: multi-nic-attachment
. Esto conectará una ENI de cada NIC de la instancia subyacente al pod (mapeo de uno a varios entre un pod y las NIC).
Si falta esta anotación, la CNI de la VPC asume que el pod solo requiere una interfaz de red y le asigna una IP desde una ENI en cualquier NIC disponible.
6. ¿Qué adaptadores de interfaz de red son compatibles con esta característica?
Puede utilizar cualquier adaptador de interfaz de red si tiene al menos un ENA conectado a la tarjeta de red subyacente para el tráfico IP. Para obtener más información sobre los ENA, consulte Elastic Network Adapter (ENA) en la Guía del usuario de Amazon EC2.
Configuraciones de dispositivos de red compatibles:
-
Las interfaces ENA proporcionan todas las características de enrutamiento y redes IP tradicionales que se requieren para admitir las redes IP de una VPC. Para obtener más información, consulte Habilitar redes mejoradas con ENA en las instancias de EC2.
-
Las interfaces EFA (EFA con ENA) proporcionan tanto el dispositivo de ENA para redes IP como el dispositivo EFA para comunicaciones de baja latencia y alto rendimiento.
importante
Si una tarjeta de red solo tiene conectado un adaptador exclusivo de EFA, la CNI de la VPC lo omitirá al aprovisionar la conectividad de red para un pod con varios hosts. Sin embargo, si combina un adaptador exclusivo de EFA con un adaptador para ENA en una tarjeta de red, la CNI de la VPC también gestionará las ENI de este dispositivo. Para utilizar interfaces exclusivas de EFA con clústeres de EKS, consulte Impartición de formación en machine learning en Amazon EKS con Elastic Fabric Adapter.
7. ¿Puedo ver si un nodo de mi clúster es compatible con ENA?
Sí, puede usar la CLI de AWS o la API de EC2 para recuperar información de red sobre una instancia de EC2 de su clúster. Esto proporciona detalles sobre si la instancia es compatible con ENA o no. En el siguiente comando, sustituya <your-instance-id>
por el ID de la instancia de EC2 de un nodo.
Ejemplo de la CLI de AWS:
aws ec2 describe-instances --instance-ids <your-instance-id> --query "Reservations[].Instances[].EnaSupport"
Ejemplo de salida:
[ true ]
8. ¿Puedo ver las distintas direcciones IP asociadas a un pod?
No, no es fácil. Sin embargo, puede utilizar nsenter
desde el nodo para ejecutar herramientas de red comunes, como ip route show
, y ver las direcciones IP e interfaces adicionales.
9. ¿Puedo controlar el número de interfaces de red de mis pods?
No. Cuando la carga de trabajo está configurada para usar varias NIC en una instancia compatible, un único pod recibe automáticamente una dirección IP de cada tarjeta de red de la instancia. Como alternativa, los pods con un solo host tendrán una interfaz de red conectada a una NIC de la instancia.
importante
La CNI de la VPC omite las tarjetas de red que solo tienen conectado un dispositivo exclusivo de EFA.
10. ¿Puedo configurar mis pods para que usen una NIC específica?
No, no se puede. Si un pod tiene la anotación correspondiente, la CNI de la VPC lo configura automáticamente para usar todas las NIC con un adaptador de ENA en el nodo de trabajo.
11. ¿Esta característica funciona con las demás características de red de la CNI de la VPC?
Sí, la característica de NIC múltiple de la CNI de la VPC funciona tanto con redes personalizadas como con detección de subredes mejorada. Sin embargo, los pods con varios hosts no utilizan las subredes ni los grupos de seguridad personalizados. En su lugar, la CNI de la VPC asigna direcciones IP e interfaces de red a los pods de múltiples hosts con la misma configuración de subred y grupo de seguridad que el nodo. Para obtener más información sobre las redes personalizadas, consulte Implementación de pods en subredes alternativas con redes personalizadas.
La característica de NIC múltiple de la CNI de la VPC no funciona con los grupos de seguridad para los pods ni se puede combinar con ellos.
12. ¿Puedo usar políticas de red con esta característica?
Sí, puede usar las políticas de red de Kubernetes con varias NIC. Las políticas de red de Kubernetes restringen el tráfico de red que entra y sale de sus pods. Para obtener más información sobre cómo aplicar políticas de red con la CNI de la VPC, consulte Limitación del tráfico de un pod con políticas de red de Kubernetes.
13. ¿Está habilitada la compatibilidad con múltiples NIC en el modo automático de EKS?
La configuración de múltiples NIC no es compatible con los clústeres del modo automático de EKS.