

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea un Kubernetes cluster basato su GPU su Amazon EKS
<a name="create-gpu-cluster-eks"></a>

Prima di creare un Kubernetes cluster basato su GPU su Amazon EKS, devi aver completato i passaggi indicati. [Guida introduttiva ad AWS Batch Amazon EKS](getting-started-eks.md) Inoltre, considera anche quanto segue:
+ AWS Batch supporta i tipi di istanze con NVIDIA GPUs.
+ Per impostazione predefinita, AWS Batch seleziona l'AMI accelerata Amazon EKS con la Kubernetes versione che corrisponde alla versione del piano di controllo del cluster Amazon EKS.

```
$ 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 non gestisce il plug-in del dispositivo NVIDIA GPU per tuo conto. È necessario installare questo plug-in nel cluster Amazon EKS e consentirgli di indirizzare i AWS Batch nodi. Per ulteriori informazioni, consulta [Enabling GPU Support in Kubernetes](https://github.com/NVIDIA/k8s-device-plugin#enabling-gpu-support-in-kubernetes) on GitHub.

Per configurare il plugin del NVIDIA dispositivo (`DaemonSet`) per indirizzare i AWS Batch nodi, esegui i seguenti comandi.

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

Non è consigliabile combinare carichi di lavoro basati su calcolo (CPU e memoria) con carichi di lavoro basati su GPU nelle stesse combinazioni di ambiente di calcolo e coda di lavoro. Questo perché i processi di elaborazione possono utilizzare la capacità della GPU.

Per allegare code di lavoro, esegui i seguenti comandi.

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