教程:创建GPU基于 Kubernetes 在亚马逊上集群 EKS - AWS Batch

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:创建GPU基于 Kubernetes 在亚马逊上集群 EKS

在创建GPU基于 Kubernetes 在 Amazon 上集群EKS,您必须已完成中的步骤教程:开始使用 Amazon EKS 上的 AWS Batch。此外,请考虑以下操作:

  • AWS Batch 支持带的实例类型NVIDIAGPUs。

  • 默认情况下, AWS Batch 选择AMI使用以下方式EKS加速的 Amazon 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 节点为目标。有关更多信息,请参阅中的 “启用 Supp GPU ort” Kubernetes上 GitHub。

要配置 NVIDIA device plugin (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