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.
Administración de los dispositivos EFA en Amazon EKS
Elastic Fabric Adapter (EFA) es un dispositivo de red para instancias de Amazon EC2 que permite una comunicación entre nodos de alto rendimiento para el entrenamiento de machine learning y cargas de trabajo de computación de alto rendimiento (HPC). Amazon EKS admite el complemento para dispositivos EFA para administrar los dispositivos EFA en los clústeres de EKS.
Creación de nodos de EKS con interfaces EFA
Al crear nodos de EKS con interfaces EFA, las interfaces EFA se conectan durante el arranque de la instancia. Si necesita personalizar la configuración de EFA por dispositivo o utilizar grupos de ubicación para las instancias de EC2 habilitadas para EFA, se recomienda utilizar grupos de nodos administrados por EKS o grupos de nodos autoadministrados por EKS. Puede transferir la configuración de cada interfaz de red con plantillas de lanzamiento.
Cuando se utiliza el modo automático de EKS o Karpenter con aprovisionamiento dinámico, las instancias creadas para los pods que solicitan vpc.amazonaws.com/efa tienen todas las interfaces configuradas según el tipo de interfaz EFA. El aprovisionamiento de capacidad estática en el modo automático de EKS y Karpenter no admite actualmente la configuración EFA por dispositivo. Actualmente, el modo automático de EKS y Karpenter no admiten grupos de ubicación.
Cuando se utiliza eksctl para aprovisionar nodos de EKS con la configuración efaEnabled, todas las interfaces se configuran según el tipo de interfaz EFA, se crea un grupo de seguridad específico de EFA y el complemento para dispositivos EFA se instala en el clúster. Si necesita personalizar la configuración de EFA por dispositivo al utilizar eksctl, se recomienda utilizar el soporte de eksctl para las plantillas de lanzamiento.
Uso de AMI optimizadas para EKS con EFA
Las AMI aceleradas de AL2023 optimizadas para EKS (NVIDIA y Neuron) y todas las AMI de Bottlerocket incluyen los componentes de nivel de host necesarios para usar EFA. Las AMI de Bottlerocket y EKS AL2023 no incluyen el complemento para dispositivos EFA, y el complemento para dispositivos debe instalarse por separado en el clúster antes de implementar cargas de trabajo que usen EFA.
Instalación del complemento para dispositivos de Kubernetes de EFA
El complemento para dispositivos EFA anuncia los dispositivos EFA como recursos ampliados de vpc.amazonaws.com/efa. Los dispositivos EFA se solicitan en límites y solicitudes de recursos de contenedores. Para ver un recorrido completo sobre cómo configurar EFA con cargas de trabajo de formación, consulte Impartición de formación en machine learning en Amazon EKS con Elastic Fabric Adapter.
El complemento para dispositivos EFA asigna automáticamente los dispositivos EFA que están topológicamente cerca de los aceleradores Neuron y las GPU NVIDIA en la instancia física de EC2.
Requisitos previos
-
Un clúster de Amazon EKS.
-
Nodos con tipos de instancias de Amazon EC2 habilitadas para EFA. Para obtener una lista de los tipos de instancia compatibles, consulte Tipos de instancias compatibles en la Guía del usuario de Amazon EC2.
-
Nodos con componentes de nivel de host instalados para EFA. Se incluyen si se utilizan las AMI aceleradas de EKS AL2023 o las AMI de Bottlerocket de EKS.
-
Si tiene Helm instalado en su entorno de línea de comandos, consulte las instrucciones de configuración de Helm para obtener más información.
-
kubectlconfigurado para comunicarse con su clúster. Consulte Instalación o actualización de kubectl para obtener más información.
Procedimiento
-
Agregue el repositorio de gráficos de Helm de EKS.
helm repo add eks https://aws.github.io/eks-charts -
Actualice el repositorio de Helm local.
helm repo update -
Instale el complemento para dispositivos EFA.
helm install efa eks/aws-efa-k8s-device-plugin -n kube-system -
Compruebe que el DaemonSet del complemento para dispositivos EFA esté en ejecución.
kubectl get daemonset -n kube-system aws-efa-k8s-device-plugin-daemonsetNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE aws-efa-k8s-device-plugin-daemonset 2 2 2 2 2 <none> 60s -
Compruebe que los nodos tengan recursos de EFA asignables.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,EFA:.status.allocatable.vpc\.amazonaws\.com/efa"NAME EFA ip-192-168-11-225.us-west-2.compute.internal 4 ip-192-168-24-96.us-west-2.compute.internal 4
Solicitud de dispositivos EFA en un pod
Para solicitar que los dispositivos EFA use el complemento para dispositivos, especifique el recurso vpc.amazonaws.com/efa en los límites o solicitudes de recursos del contenedor.
apiVersion: v1 kind: Pod metadata: name: efa-workload spec: containers: - name: app ... resources: limits: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ... requests: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ...