

 **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
<a name="device-management-efa"></a>

 [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) (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
<a name="eks-efa-nodes"></a>

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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html).

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`](install-kubectl.md#eksctl-install-update) 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](https://docs.aws.amazon.com/eks/latest/eksctl/launch-template-support.html).

## Uso de AMI optimizadas para EKS con EFA
<a name="eks-amis-efa"></a>

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
<a name="efa-device-plugin"></a>

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](node-efa.md).

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
<a name="_prerequisites"></a>
+ 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) 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](helm.md) para obtener más información.
+  `kubectl` configurado para comunicarse con su clúster. Consulte [Instalación o actualización de `kubectl`](install-kubectl.md#kubectl-install-update) para obtener más información.

### Procedimiento
<a name="_procedure"></a>

1. Agregue el repositorio de gráficos de Helm de EKS.

   ```
   helm repo add eks https://aws.github.io/eks-charts
   ```

1. Actualice el repositorio de Helm local.

   ```
   helm repo update
   ```

1. Instale el complemento para dispositivos EFA.

   ```
   helm install efa eks/aws-efa-k8s-device-plugin -n kube-system
   ```

1. Compruebe que el DaemonSet del complemento para dispositivos EFA esté en ejecución.

   ```
   kubectl get daemonset -n kube-system aws-efa-k8s-device-plugin-daemonset
   ```

   ```
   NAME                                  DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
   aws-efa-k8s-device-plugin-daemonset   2         2         2       2            2           <none>          60s
   ```

1. 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
<a name="_request_efa_devices_in_a_pod"></a>

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: ...
```