排查 GKE 中的 GPU 问题


本页面介绍了如何解决与 Google Kubernetes Engine (GKE) 中的 GPU 相关的问题。

如果您需要其他帮助,请与 Cloud Customer Care 联系。

GPU 驱动程序安装

本部分提供了有关 GKE 中的自动 NVIDIA 设备驱动程序安装的问题排查信息。

在 Ubuntu 节点中安装驱动程序失败

如果您使用挂接了 L4 GPU 或 H100 GPU 的 Ubuntu 节点,则 GKE 安装的默认 GPU 驱动程序可能会低于这些 GPU 所需的版本。因此,GPU 设备插件 Pod 会卡在“待处理”状态,并且这些节点上的 GPU 工作负载可能会遇到问题。

如需解决此问题,请运行以下命令来手动安装驱动程序版本 500 或更高版本:

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

GPU 设备插件失败并显示 CrashLoopBackOff 错误

如果您在 2023 年 1 月 25 日之前在节点池中使用了手动驱动程序安装方法,然后将节点池升级到支持自动驱动程序安装的 GKE 版本,则会出现以下问题。这两项安装工作负载同时存在,并尝试在节点上安装冲突的驱动程序版本。

GPU 设备插件 init 容器失败并显示 Init:CrashLoopBackOff 状态。容器的日志类似于以下内容:

failed to verify installation: failed to verify GPU driver installation: exit status 18

如需解决此问题,请尝试以下方法:

  • 从集群中移除手动驱动程序安装 DaemonSet。这会删除冲突的安装工作负载,并让 GKE 自动将驱动程序安装到您的节点。

    kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
    
  • 将手动驱动程序安装 DaemonSet 清单重新应用到您的集群。 2023 年 1 月 25 日,我们更新了清单,以忽略使用自动驱动程序安装的节点。

    kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
    
  • 为节点池停用驱动程序自动安装功能。更新操作完成后,现有的驱动程序安装 DaemonSet 应按预期运行。

    gcloud container node-pools update POOL_NAME \
        --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=disabled \
        --cluster=CLUSTER_NAME \
        --location=LOCATION
    

    请替换以下内容:

    • POOL_NAME:节点池的名称。
    • GPU_TYPE:节点池已在使用的 GPU 类型。
    • GPU_COUNT:已挂接到节点池的 GPU 数量。
    • CLUSTER_NAME:包含节点池的 GKE 集群的名称。
    • LOCATION:集群的 Compute Engine 位置。

后续步骤

如果您需要其他帮助,请与 Cloud Customer Care 联系。