Kubernetes GPU Pod报错nvidia-smi可执行文件未在$PATH中找到 排查求助
排查解决步骤
核心故障根源是NVIDIA GPU Operator的工具包验证组件无法找到nvidia-smi执行路径,本质是容器运行时的GPU支持配置冲突/缺失,按以下顺序排查:
1. 确认宿主机GPU驱动和容器运行时基础配置有效性
- 首先在集群节点直接执行
nvidia-smi,确认返回正常的GPU信息,排除驱动本身损坏问题 - 测试Docker原生GPU容器运行能力,执行:
如果该命令报错,说明未正确安装NVIDIA Container Toolkit,需重新配置Docker的NVIDIA运行时,配置完成后重启Docker和kubelet服务。docker run --rm --gpus all nvidia/cuda:11.4.0-base-ubuntu20.04 nvidia-smi
2. 排查组件冲突问题
你同时手动安装了NVIDIA k8s-device-plugin和GPU Operator,二者存在功能重叠冲突:GPU Operator本身已内置device-plugin、DCGM、特性发现等全套组件,手动安装的device-plugin会占用GPU资源句柄、修改runtime配置,导致Operator验证失败。
- 完全删除手动安装的NVIDIA k8s-device-plugin所有相关资源(DaemonSet、ConfigMap、RBAC权限等)
3. 修正GPU Operator部署参数
你已在宿主机预装了GPU驱动,GPU Operator默认会自动尝试安装驱动,会和宿主机已有驱动冲突,同时你使用Docker作为容器运行时,需要指定对应参数:
- 卸载当前已部署的GPU Operator,清理节点上残留的
/run/nvidia、/usr/local/nvidia目录 - 重新部署GPU Operator时添加以下参数:
helm install nvidia/gpu-operator \ --namespace gpu-operator-resources \ --create-namespace \ --set driver.enabled=false \ --set runtime=docker
4. 部署后验证
- 等待10-15分钟后执行
kubectl get pods -n gpu-operator-resources,确认所有Pod处于Running状态 - 再执行节点资源查询命令
kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPUs:.status.capacity.'nvidia\.com/gpu',确认GPU资源可正常调度 - 最后启动JupyterHub的GPU实例,确认实例正常创建,在实例终端执行
nvidia-smi验证GPU可用
内容的提问来源于stack exchange,提问作者hande
相关产品推荐
相关产品推荐

