对于NVIDIA GPU,存在3种设备插件的实现。
官方NVIDIA GPU插件
要求
1. 节点安装了NVIDIA驱动。
2. 节点安装nvidia-docker 2.0。
3. Docker的默认运行时必须设置为nvidia-container-runtime,而不是runc。
4. NVIDIA 驱动版本 ~= 384.81。
NVIDIA Container Runtime
把docker的默认运行时从runc改成nvidia-container-runtime。
docker -> containerd -> nvidia-container-runtime -> nvidia-container-runtime-hook(在原有runc基础上增加一个prestart hook,调用libnvidia-container库,使NVIDIA GPU应用于Linux容器) -> runc
容器应用监控GPU信息,需要使用nvidia-container-runtime。
容器里面可以直接执行nvidia-smi
1 下载nvidia-container-runtime repo
https://nvidia.github.io/nvidia-container-runtime
2 下载nvidia容器运行时所需的rpm包并安装
yum install --downloadonly --downloaddir=/root/nvidia nvidia-container-runtime.x86_64
rpm -ivh nvidia-container-runtime.x86_64
3 通过修改/etc/docker/daemon.json来把docker的默认运行时runc改成nvidia容器运行时
4 重启docker
systemctl restart docker
谷歌GPU插件
github.com/GoogleCloudPlatform/container-engine-accelerators
节点安装NVIDIA驱动,插件适用于所有实现了k8s CRI的容器运行时。