

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EKS에서 GPU 기반 Kubernetes 클러스터 생성
<a name="create-gpu-cluster-eks"></a>

Amazon EKS에서 GPU 기반 Kubernetes 클러스터를 생성하려면 먼저 [Amazon EKS AWS Batch 에서 시작하기](getting-started-eks.md)의 단계를 완료해야 합니다. 추가적으로 다음 사항도 고려하세요.
+ AWS Batch 는 NVIDIA GPUs에서 인스턴스 유형을 지원합니다.
+ 기본적으로는 Amazon EKS 클러스터 컨트롤 플레인 Kubernetes 버전과 일치하는 버전으로 Amazon EKS 가속 AMI를 AWS Batch 선택합니다.

```
$ cat <<EOF > ./batch-eks-gpu-ce.json
{
  "computeEnvironmentName": "My-Eks-GPU-CE1",
  "type": "MANAGED",
  "state": "ENABLED",
  "eksConfiguration": {
    "eksClusterArn": "arn:aws:eks:<region>:<account>:cluster/<cluster-name>",
    "kubernetesNamespace": "my-aws-batch-namespace"
  },
  "computeResources": {
    "type": "EC2",
    "allocationStrategy": "BEST_FIT_PROGRESSIVE",
    "minvCpus": 0,
    "maxvCpus": 1024,
    "instanceTypes": [
      "p3dn.24xlarge",
      "p4d.24xlarge"
    ],
    "subnets": [
        "<eks-cluster-subnets-with-access-to-internet-for-image-pull>"
    ],
    "securityGroupIds": [
        "<eks-cluster-sg>"
    ],
    "instanceRole": "<eks-instance-profile>"
  }
}
EOF

$ aws batch create-compute-environment --cli-input-json file://./batch-eks-gpu-ce.json
```

AWS Batch 는 사용자를 대신하여 NVIDIA GPU 디바이스 플러그인을 관리하지 않습니다. 이 플러그인을 Amazon EKS 클러스터에 설치하고 AWS Batch 노드를 대상으로 지정할 수 있도록 허용해야 합니다. 자세한 내용은 GitHub의 [Kubernetes에서 GPU 지원 활성화](https://github.com/NVIDIA/k8s-device-plugin#enabling-gpu-support-in-kubernetes)를 참조하세요.

 AWS Batch 노드를 대상으로 하도록 NVIDIA 디바이스 플러그인(`DaemonSet`)을 구성하려면 다음 명령을 실행합니다.

```
# pull nvidia daemonset spec
$ curl -O https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.12.2/nvidia-device-plugin.yml
# using your favorite editor, add Batch node toleration
# this will allow the DaemonSet to run on Batch nodes
- key: "batch.amazonaws.com/batch-node"
  operator: "Exists"

$ kubectl apply -f nvidia-device-plugin.yml
```

동일한 컴퓨팅 환경과 작업 대기열의 쌍에서 컴퓨팅 기반(CPU 및 메모리) 워크로드와 GPU 기반 워크로드를 함께 사용하지 않는 것이 좋습니다. 컴퓨팅 작업이 GPU 용량을 소모할 수 있기 때문입니다.

작업 대기열을 연결하려면 다음 명령을 실행합니다.

```
$ cat <<EOF > ./batch-eks-gpu-jq.json
 {
    "jobQueueName": "My-Eks-GPU-JQ1",
    "priority": 10,
    "computeEnvironmentOrder": [
      {
        "order": 1,
        "computeEnvironment": "My-Eks-GPU-CE1"
      }
    ]
  }
EOF

$ aws batch create-job-queue --cli-input-json file://./batch-eks-gpu-jq.json
```