

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Gerenciar dispositivos EFA no Amazon EKS
<a name="device-management-efa"></a>

 O [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) (EFA) é um dispositivo de rede para instâncias do Amazon EC2 que permite uma comunicação de alto desempenho entre nós para treinamento de machine learning e workloads de computação de alta performance (HPC). O Amazon EKS oferece suporte ao *plug-in de dispositivo EFA* para gerenciar dispositivos EFA em clusters do EKS.

## Criar nós EKS com interfaces EFA
<a name="eks-efa-nodes"></a>

Ao criar nós do EKS com interfaces EFA, essas interfaces são conectadas durante a inicialização da instância. Se você precisar personalizar a configuração do EFA por dispositivo ou usar [grupos de posicionamento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) para as instâncias EC2 habilitadas para o EFA, recomenda-se usar grupos de nós gerenciados pelo EKS ou grupos de nós autogerenciados pelo EKS. É possível definir a configuração de cada interface de rede usando [modelos de inicialização](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html).

Ao usar o Modo Automático do EKS ou o Karpenter com provisionamento dinâmico, as instâncias criadas para os Pods solicitando `vpc.amazonaws.com/efa` têm todas as interfaces configuradas com o tipo de interface `EFA`. Atualmente, o provisionamento de capacidade estática no Modo Automático do EKS e no Karpenter não oferece suporte à configuração do EFA por dispositivo. Atualmente, o Modo Automático do EKS e o Karpenter não oferecem suporte a grupos de colocação.

Ao usar [`eksctl`](install-kubectl.md#eksctl-install-update) para provisionar nós do EKS com a configuração `efaEnabled`, todas as interfaces são configuradas com o tipo de interface `EFA`, um grupo de segurança específico do EFA é criado, e o plug-in de dispositivo do EFA é instalado no cluster. Se você precisar personalizar a configuração do EFA por dispositivo ao usar o `eksctl`, recomenda-se utilizar o suporte do `eksctl` para [modelos de inicialização](https://docs.aws.amazon.com/eks/latest/eksctl/launch-template-support.html).

## Usar AMIs otimizadas para o EKS com o EFA
<a name="eks-amis-efa"></a>

As AMIs aceleradas AL2023 otimizadas para EKS (NVIDIA e Neuron) e todas as AMIs Bottlerocket incluem os componentes de nível de host necessários para utilizar o EFA. As AMIs AL2023 e Bottlerocket do EKS não incluem o plug-in de dispositivo EFA, e esse plug-in deve ser instalado separadamente no seu cluster antes da implantação de workloads que utilizam o EFA.

## Instale o plug-in de dispositivo EFA para Kubernetes
<a name="efa-device-plugin"></a>

O plug-in de dispositivos EFA apresenta os dispositivos EFA como recursos estendidos `vpc.amazonaws.com/efa`. Você solicita dispositivos EFA nas solicitações e limites de recursos de contêineres. Para obter um guia passo a passo completo sobre como configurar o EFA com workloads de treinamento, consulte [Execute o treinamento de machine learning no Amazon EKS com o Elastic Fabric Adapter](node-efa.md).

O plug-in de dispositivos EFA aloca automaticamente os dispositivos EFA que estão topologicamente próximos aos aceleradores Neuron e às GPUs NVIDIA na instância física do EC2.

### Pré-requisitos
<a name="_prerequisites"></a>
+ Um cluster do Amazon EKS.
+ Nós com tipos de instância do Amazon EC2 compatíveis com EFA. Para obter uma lista dos tipos de instância compatíveis, consulte [Tipos de instância compatíveis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) no *Guia do usuário do Amazon EC2*.
+ Nós com componentes de nível de host instalados para o EFA. Esses recursos estão incluídos caso você utilize as AMIs aceleradas do EKS AL2023 ou as AMIs Bottlerocket do EKS.
+ O Helm instalado em seu ambiente de linha de comando. Consulte as [Instruções de configuração do Helm](helm.md) para obter mais informações.
+  `kubectl` configurado para se comunicar com o seu cluster; consulte [Instalar ou atualizar o `kubectl`](install-kubectl.md#kubectl-install-update) para obter mais informações.

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

1. Adicione o repositório do chart do Helm do EKS.

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

1. Atualize seu repositório Helm local.

   ```
   helm repo update
   ```

1. Instalação do plug-in de dispositivo do EFA.

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

1. Verifique se o DaemonSet do plug-in do dispositivo EFA está em execução.

   ```
   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. Verifique se os seus nós possuem recursos EFA alocáveis.

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

### Solicitar dispositivos EFA em um Pod
<a name="_request_efa_devices_in_a_pod"></a>

Para solicitar dispositivos EFA usando o plug-in do dispositivo, especifique o recurso `vpc.amazonaws.com/efa` nas solicitações ou limites de recursos do contêiner.

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