无法在 GKE 上请求具有一个 GPU 的集群

Unable to request cluster with one GPU on GKE

我正在尝试创建一个包含 1 个节点和 1 个 GPU/node 的最小集群。我的命令:

gcloud container clusters create cluster-gpu     --num-nodes=1     --zone=us-central1-a      --machine-type="n1-highmem-2"  --accelerator="type=nvidia-tesla-k80,count=1"     --scopes="gke-default,storage-rw"

创建集群。现在当下面pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: gke-training-pod-gpu
spec:
  containers:
  - name: my-custom-container
    image: gcr.io/.../object-classification:gpu
    resources:
      limits:
        nvidia.com/gpu: 1

应用于我的集群,我可以在 GKE 仪表板中看到从未创建 gke-training-pod-gpu pod。当我像上面那样做时,只是将 num-nodes=1 替换为 num-nodes=2,这次我得到以下错误:

ERROR: (gcloud.container.clusters.create) ResponseError: code=403, message=Insufficient regional quota to satisfy request: resource "NVIDIA_K80_GPUS": request requires '2.0' and is short '1.0'. project has a quota of '1.0' with '1.0' available. View and manage quotas at https://console.cloud.google.com/iam-admin/quotas?usage=USED&project=...

当配额为 1 时,有什么方法可以使用 GPU 吗?

编辑:

当使用 kubectl apply 命令创建 pod 时,kubectl describe pod gke-training-pod-gpu 命令显示以下事件:

Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  48s (x2 over 48s)  default-scheduler  0/1 nodes are available: 1 Insufficient nvidia.com/gpu.

我认为最好的解决方案是在 IAM & Admin Quotas page 中请求增加配额。

至于发生这种情况的原因,我只能想象节点和 pod 都在请求 GPU,但由于配额上限,只有节点在获取它。

看起来您需要 install the NVIDIA CPU device driver 在您的工作节点上。

运行

kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml

应该可以解决问题。