Kubernetes (k8s)调用GPU配置
1、安装GPU驱动和CUDA
https://www.nvidia.com/Download/index.aspx?lang=en-us 下载驱动程序,按照自己和显卡型号选择
安装cuda,地址:https://developer.nvidia.com/cuda-toolkit-archive
2、安装nvidia-docker2
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
yum install nvidia-docker2
其它版本系统可参考:
此源包含nvidia-docker2和nvidia-container-toolkit,应该这两个都可以支持调用GPU.
修改docker配置
vim /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
systemctl restart docker
3、安装k8s-device-plugin
# wget https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.12.0/nvidia-device-plugin.yml
# kubectl create -f nvidia-device-plugin.yml
检查插件运行情况:
kubectl get pods -n kube-system
若没有nvidia-device-plugin-daemonset的pod运行,需要检查新建的nvidia-device-plugin.yml中的DaemonSet是否正常,如果DaemonSet运行不正常,则检查DaemonSet。
kubectl describe daemonset -n default
4、问题处理
单机器K8S,无法调度GPU
去除master节点的污点标记,默认K8S集群不允许master节点上被调度到带GPU的POD,需要去除污点。
Insufficient nvidia.com/gpu
在使用kubectl logs查询插件的日志时,出现了如下问题:
当出现这个问题时,请仔细检查一下是否配置了nvidia默认运行时,检查/etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
如有修改,请重启docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」