NVIDIA 容器运行时工具
NVIDIA Container Toolkit 让 Docker、containerd、Podman 在容器内访问 GPU。它包含 nvidia-ctk、runtime hook 和 CDI 支持,是 GPU 节点和 Kubernetes GPU 调度的基础。
核心步骤:安装驱动 → 安装 toolkit → 配置容器运行时 → 重启运行时 → 用 --gpus all 或 nvidia.com/gpu 验证。
安装(Ubuntu):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update && sudo apt install -y nvidia-container-toolkit
配置 Docker:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
配置 containerd:
sudo nvidia-ctk runtime configure --runtime=containerd
sudo systemctl restart containerd
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
验证:
nvidia-ctk --version
nvidia-container-cli info
docker info | grep -i runtimes
Kubernetes 节点还需要 NVIDIA device plugin,Pod 中申请 nvidia.com/gpu。
nvidia-container-runtime 路径写错,Pod 启动失败。--gpus all 或 NVIDIA_VISIBLE_DEVICES,GPU 不可见。no-cgroups 配置,否则挂载失败。unsatisfied condition: cuda>=...。