K8S集群部署应用使用GPU时安装NVIDIA驱动的问题咨询
节点侧CUDA及相关组件安装步骤
基础环境准备
- 卸载节点内残留的旧NVIDIA相关包:
(Debian/Ubuntu系统)sudo apt purge nvidia* libnvidia* -y
(CentOS/RHEL系统)sudo yum remove nvidia* libnvidia* -y
安装NVIDIA驱动与容器工具包
- 添加NVIDIA官方软件源,根据节点操作系统版本选择对应源配置
- 安装稳定版NVIDIA驱动与nvidia-container-toolkit:
(Debian/Ubuntu系统)sudo apt update && sudo apt install -y nvidia-driver-535 nvidia-container-toolkit
(CentOS/RHEL系统)sudo yum install -y nvidia-driver-535 nvidia-container-toolkit - 重启节点使驱动加载生效:
sudo reboot - 重启后执行
nvidia-smi验证驱动状态,正常输出GPU硬件信息即为驱动安装成功
配置容器运行时
K8S默认使用containerd作为运行时,执行如下配置:
sudo nvidia-ctk runtime configure --runtime=containerd sudo systemctl restart containerd
若集群使用Docker作为运行时,执行对应配置:
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker
K8S集群GPU调度配置
节点安装完驱动后,需要配置K8S识别GPU资源:
- 部署NVIDIA官方的nvidia-device-plugin组件
- 执行
kubectl describe node <GPU节点名称>验证资源识别,节点Capacity字段下出现nvidia.com/gpu: <对应GPU数量>即为配置完成
应用Pod适配调整
你当前使用的基础镜像未预装CUDA运行时,且未配置GPU资源申请,即使节点驱动正常也无法调用GPU,可选择任意一种方案适配:
- 方案1:更换基础镜像为内置对应版本CUDA、PyTorch的官方运行时镜像,再自行安装uwsgi、nginx、Flask相关依赖
- 方案2:保持现有镜像构建逻辑,在镜像内安装与节点驱动版本匹配的CUDA toolkit,同时在Pod配置中添加GPU资源限制与运行时指定:
resources: limits: nvidia.com/gpu: 1 runtimeClassName: nvidia
验证方法
Pod启动后进入容器执行如下命令,输出True即为配置生效:python -c "import torch; print(torch.cuda.is_available())"
内容的提问来源于stack exchange,提问作者de1337ed
相关产品推荐
相关产品推荐

