Containerd 配置使用 Nvidia container runtime
前言
Kubernetes
集群中 Docker
如何使用 GPU
,请看这一篇
本文着重讲 Containerd
如何作为容器运行时来使用 GPU
CRI Plugin Config Guide CRI 插件配置指南 https://github.com/containerd/containerd/blob/main/docs/cri/config.md
nvidia-container-runtime
nvidia-container-runtime
是在 runc
基础上多实现了 nvidia-container-runime-hook
(现在叫 nvidia-container-toolkit
),该 hook
是在容器启动后(Namespace
已创建完成),容器自定义命令( Entrypoint
)启动前执行。当检测到 NVIDIA_VISIBLE_DEVICES
环境变量时,会调用 libnvidia-container
挂载 GPU Device
和 CUDA Driver
。如果没有检测到 NVIDIA_VISIBLE_DEVICES
就会执行默认的 runc
。
设置 repository
和 GPG key
:
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$(. /etc/os-release;echo $ID$VERSION_ID)/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
开始安装 nvidia-container-runtime
apt install nvidia-container-runtime -y
配置 Containerd
使用 Nvidia container runtime
如果 /etc/containerd
目录不存在,就先创建它:
mkdir /etc/containerd
生成默认配置:
containerd config default > /etc/containerd/config.toml
Kubernetes
使用设备插件(Device Plugins
) 来允许 Pod
访问类似 GPU
这类特殊的硬件功能特性,但前提是默认的 OCI runtime
必须改成 nvidia-container-runtime
,需要修改的内容如下:
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "nvidia-container-runtime" # 修改为nvidia-container-runtime
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2" # 修改为io.containerd.runc.v2
# 新增以下
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia-container-runtime]
runtime_type = "io.containerd.runtime.v1.linux"
runtime_engine = "/usr/bin/nvidia-container-runtime"
重启 containerd
服务:
systemctl restart containerd
systemctl status containerd
确定 containerd
状态没有问题,配置成功
接下来部署 NVIDIA GPU
设备插件,nvidia-device-plugin
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!