教學課程:建立以 GPU 為基礎的 Kubernetes Amazon EKS 上的叢集 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:建立以 GPU 為基礎的 Kubernetes Amazon EKS 上的叢集

建立 GPU 型 Kubernetes Amazon EKS 上的 叢集,您必須已完成 中的步驟教學課程:Amazon AWS Batch 入門 EKS。此外,也請考量下列事項:

  • AWS Batch 支援 NVIDIA 的執行個體類型GPUs。

  • 根據預設, AWS Batch 會使用 選取 Amazon EKS 加速 AMI Kubernetes 與您的 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 不會管理 NVIDIA 代表您使用 GPU 裝置外掛程式。您必須在 Amazon EKS 叢集中安裝此外掛程式,並允許它鎖定 AWS Batch 節點。如需詳細資訊,請參閱在 中啟用 GPU 支援 Kubernetes on GitHub。

若要設定 NVIDIA 裝置外掛程式 (DaemonSet) 以鎖定 AWS Batch 節點,請執行下列命令。

# 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