Red - Amazon EKS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Red

Considere un mayor ancho de banda de red o un adaptador de estructura elástica para aplicaciones con alta comunicación entre nodos

Para cargas de trabajo de entrenamiento distribuidas en Amazon EKS con altas demandas de comunicación entre nodos, considere la posibilidad de seleccionar instancias con mayor ancho de banda de red o Elastic Fabric Adapter (EFA). Un rendimiento de red insuficiente puede obstaculizar la transferencia de datos y ralentizar las tareas de aprendizaje automático, como el entrenamiento distribuido con varias GPU. Tenga en cuenta que las cargas de trabajo de inferencia no suelen tener una alta comunicación entre nodos.

Ejemplo

Por ejemplo, con Karpenter:

apiVersion: v1 kind: Pod metadata: name: ml-workload spec: nodeSelector: karpenter.k8s.aws/instance-network-bandwidth: "100000" # 100 Gbps in Mbps node.kubernetes.io/instance-type: p5.48xlarge # EFA-enabled instance containers: - name: training-job image: `763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:2.6.0-gpu-py312-cu124-ubuntu22.04-ec2-v1.6` resources: limits: vpc.amazonaws.com/efa: 1 # Requires EFA device plugin

Asegúrese de que herramientas como MPI y NCCL estén instaladas en la imagen de su contenedor para aprovechar la EFA en trabajos de formación.

Aumente la cantidad de direcciones IP disponibles para acelerar los tiempos de lanzamiento de los pods

En EKS, cada pod necesita una dirección IP del bloque CIDR de la VPC. A medida que el clúster se amplía con más nodos y pods, se corre el riesgo de que se agoten las direcciones IP o se reduzca el rendimiento, pero habilitar la delegación de prefijos puede mitigar estos problemas al asignar previamente los rangos de IP y reducir las llamadas a la EC2 API, lo que se traduce en tiempos de lanzamiento de los pods más rápidos y en una mejor escalabilidad.

Al habilitar la delegación de prefijos después de crear el clúster, la interfaz de red de contenedores (CNI) de la VPC puede asignar prefijos IP (/28, cada uno con 16 direcciones IP) a las interfaces de red de las instancias. EC2 Esto significa que cada nodo puede admitir más pods, lo que reduce el riesgo de escasez de IP. Por ejemplo, en una c5.4xlarge instancia, puedes admitir hasta 110 pods con delegación de prefijos.

Si bien la delegación de prefijos es fundamental para optimizar el uso de la IP en entornos con muchos pods pequeños, AI/ML las cargas de trabajo suelen utilizar menos pods y más grandes (por ejemplo, un pod por GPU). Al habilitar la delegación de prefijos, la CNI de la VPC puede preasignar un prefijo para acelerar el inicio del pod al mantener una piscina caliente. Esto significa que las direcciones IP están fácilmente disponibles, lo que reduce el tiempo necesario para la inicialización del pod en comparación con la asignación bajo demanda en el modo sin prefijo. En estos casos, los ahorros en IP que se obtienen al permitir la delegación de prefijos ofrecen beneficios de rendimiento para las cargas de trabajo. AI/ML Al reducir el número de llamadas a la EC2 API necesarias para configurar las direcciones IP y asignar previamente los rangos de IP, el uso de la delegación de prefijos permite lanzar los pods más rápidamente, lo que resulta especialmente beneficioso para escalar las cargas de trabajo con rapidez. AI/ML

Para habilitar la delegación de prefijos:

kubectl set env daemonset/aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true

Garantice una planificación adecuada de las subredes de VPC para evitar el agotamiento de las direcciones IP, especialmente en implementaciones de gran tamaño, y gestione los bloques de CIDR para evitar superposiciones. VPCs Para obtener más información, consulte Optimización del uso de direcciones IP y Asignación de más direcciones IP a los nodos de Amazon EKS con prefijos.