

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# Amazon EKS에서 EFA 디바이스 관리
<a name="device-management-efa"></a>

 [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)(EFA)는 기계 학습 훈련 및 고성능 컴퓨팅(HPC) 워크로드를 위한 고성능 노드 간 통신을 지원하는 Amazon EC2 인스턴스용 네트워크 디바이스입니다. Amazon EKS는 EKS 클러스터에서 EFA 디바이스를 관리하기 위한 *EFA 디바이스 플러그인*을 지원합니다.

## EFA 인터페이스를 사용하여 EKS 노드 생성
<a name="eks-efa-nodes"></a>

EFA 인터페이스를 사용하여 EKS 노드를 생성하는 경우 인스턴스 부트스트랩 중에 EFA 인터페이스가 연결됩니다. 디바이스별 EFA 구성을 사용자 지정하거나 EFA 지원 EC2 인스턴스에 대한 [배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)을 사용해야 하는 경우 EKS 관리형 노드 그룹 또는 EKS 자체 관리형 노드 그룹을 사용하는 것이 좋습니다. [시작 템플릿](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)을 사용하여 각 네트워크 인터페이스에 대한 구성을 전달할 수 있습니다.

동적 프로비저닝과 함께 EKS Auto Mode 또는 Karpenter를 사용하는 경우 `vpc.amazonaws.com/efa`를 요청하는 포드에 대해 생성된 인스턴스에서는 모든 인터페이스가 `EFA` 인터페이스 유형으로 구성됩니다. EKS Auto Mode 및 Karpenter의 정적 용량 프로비저닝은 현재 디바이스별 EFA 구성을 지원하지 않습니다. EKS Auto Mode 및 Karpenter는 현재 배치 그룹을 지원하지 않습니다.

`efaEnabled` 설정으로 EKS 노드를 프로비저닝하기 위해 [`eksctl`](install-kubectl.md#eksctl-install-update)을 사용하는 경우 모든 인터페이스가 `EFA` 인터페이스 유형으로 구성되고, EFA별 보안 그룹이 생성되며, EFA 디바이스 플러그인이 클러스터에 설치됩니다. `eksctl`을 사용할 때 디바이스별 EFA 구성을 사용자 지정해야 하는 경우 [시작 템플릿](https://docs.aws.amazon.com/eks/latest/eksctl/launch-template-support.html)에 대한 'eksctl'의 지원을 사용하는 것이 좋습니다.

## EFA에서 EKS 최적화 AMI 사용
<a name="eks-amis-efa"></a>

EKS 최적화 AL2023 가속 AMI(NVIDIA 및 Neuron) 및 모든 Bottlerocket AMI에는 EFA를 사용해야 하는 호스트 수준 구성 요소가 포함되어 있습니다. EKS AL2023 및 Bottlerocket AMI에는 EFA 디바이스 플러그인이 포함되어 있지 않으므로, EFA를 사용하는 워크로드를 배포하기 전에 디바이스 플러그인을 클러스터에 별도로 설치해야 합니다.

## EFA Kubernetes 디바이스 플러그인 설치
<a name="efa-device-plugin"></a>

EFA 디바이스 플러그인은 EFA 디바이스를 `vpc.amazonaws.com/efa` 확장 리소스로 알립니다. 컨테이너 리소스 요청 및 제한에서 EFA 디바이스를 요청합니다. 훈련 워크로드로 EFA를 설정하는 전체 연습 과정은 [Elastic Fabric Adapter를 사용한 Amazon EKS에서 기계 학습 훈련 실행](node-efa.md) 섹션을 참조하세요.

EFA 디바이스 플러그인은 물리적 EC2 인스턴스에서 Neuron 액셀러레이터 및 NVIDIA GPU와 토폴로지상 가까운 EFA 디바이스를 자동으로 할당합니다.

### 사전 조건
<a name="_prerequisites"></a>
+ Amazon EKS 클러스터.
+ EFA 지원 Amazon EC2 인스턴스 유형이 있는 노드. 지원되는 인스턴스 유형 목록은 *Amazon EC2 사용 설명서*의 [지원되는 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types)을 참조하세요.
+ EFA에 대해 호스트 수준 구성 요소가 설치된 노드. EKS AL2023 가속 AMI 또는 EKS Bottlerocket AMI를 사용하는 경우에 포함됩니다.
+ 명령줄 환경에 설치된 Helm에 대한 자세한 내용은 [Helm 설정 지침](helm.md)을 참조하세요.
+  클러스터와 통신하도록 구성된 `kubectl`. 자세한 내용은 [`kubectl` 설치 또는 업데이트](install-kubectl.md#kubectl-install-update) 섹션을 참조하세요.

### 절차
<a name="_procedure"></a>

1. EKS 헬름 차트 리포지토리를 추가하세요.

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

1. 로컬 헬름 리포지토리를 업데이트하세요.

   ```
   helm repo update
   ```

1. EFA 디바이스 플러그인을 설치하세요.

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

1. EFA 디바이스 플러그인 DaemonSet가 실행 중인지 확인하세요.

   ```
   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. 노드에 할당 가능한 EFA 리소스가 있는지 확인하세요.

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

### 포드에서 EFA 디바이스 요청
<a name="_request_efa_devices_in_a_pod"></a>

디바이스 플러그인을 사용하여 EFA 디바이스를 요청하려면 컨테이너 리소스 요청 또는 제한에서 `vpc.amazonaws.com/efa` 리소스를 지정합니다.

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