GKE中运行GPU Pod报错2 insufficient nvidia.com/gpu求助
排障思路与解决方案
从你提供的节点yaml输出可以直接定位核心问题:GPU节点的capacity和allocatable字段中没有上报nvidia.com/gpu资源项,K8s调度器认为该节点没有可用GPU资源,因此会返回Insufficient nvidia.com/gpu的调度错误。你可以按照以下步骤逐一排查:
确认GPU驱动DaemonSet实际运行状态
不要仅看DaemonSet的整体状态,要检查对应Pod是否真的调度到了该GPU节点,且处于持续Running无重启的状态。执行以下命令查看驱动Pod的运行日志:kubectl logs -n kube-system <你的nvidia驱动Pod名>重点排查是否有驱动加载失败、与节点内核版本不兼容的报错,你当前节点内核版本为5.4.89+,需确认使用的驱动版本支持该内核。
验证节点侧GPU识别状态
登录到GPU节点上执行nvidia-smi命令,若无法正常输出Tesla T4的显卡信息,说明驱动实际未安装成功。注意你使用的是COS系统,必须使用GKE官方适配的GPU驱动DaemonSet,第三方社区版的nvidia-device-plugin大概率与GKE COS镜像不兼容,无法正确识别GPU。补充Pod调度强制规则
你的容忍度配置已经适配GPU节点的nvidia.com/gpu污点,可额外在Pod的spec中增加nodeSelector配置,强制Pod调度到GPU节点池,避免调度到无GPU的普通节点:nodeSelector: cloud.google.com/gke-accelerator: nvidia-tesla-t4重建GPU节点
若上述排查都无问题但资源仍未上报,可直接删除该GPU节点,让NodePool自动重新创建新的GPU节点,部分场景下节点初始化时驱动加载偶发异常,重建即可恢复。
内容的提问来源于stack exchange,提问作者Oli

