Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit

文章目录

  • [该回答整理自 grok4](#该回答整理自 grok4)
      • [在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit](#在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit)
        • [步骤 1: 安装前提包](#步骤 1: 安装前提包)
        • [步骤 2: 配置 NVIDIA Container Toolkit 仓库](#步骤 2: 配置 NVIDIA Container Toolkit 仓库)
        • [步骤 3: 安装 NVIDIA Container Toolkit 包](#步骤 3: 安装 NVIDIA Container Toolkit 包)
    • 下面的内容本次没有采用
        • [步骤 3: 安装 NVIDIA Container Toolkit 包](#步骤 3: 安装 NVIDIA Container Toolkit 包)
        • [步骤 4: 配置容器运行时](#步骤 4: 配置容器运行时)
          • [对于 Docker](#对于 Docker)
          • [对于 containerd(推荐用于 Kubernetes)](#对于 containerd(推荐用于 Kubernetes))
          • [对于 Podman(推荐用于 rootless 容器)](#对于 Podman(推荐用于 rootless 容器))
          • [对于 CRI-O(Kubernetes)](#对于 CRI-O(Kubernetes))
        • [步骤 5: 测试安装](#步骤 5: 测试安装)
        • 故障排除
    • [❤️ 一起学AI](#❤️ 一起学AI)

该回答整理自 grok4

在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit

Kylin Linux Advanced Server V10 (Halberd) 是基于 Red Hat/CentOS 的 RPM 发行版,因此 NVIDIA Container Toolkit 的安装过程类似于 RHEL/CentOS 系统。NVIDIA 官方支持 RPM-based 发行版(如 RHEL、CentOS、Fedora),并提供标准仓库配置。以下是完整的安装指南,基于 NVIDIA 官方文档(适用于 RPM 系统)。

注意

  • 前提条件
    • 确保已安装 NVIDIA GPU 驱动(版本 ≥ 418.81.07)。如果未安装,请先参考 NVIDIA 驱动安装指南 或 Kylin 官方仓库安装(例如 sudo yum install nvidia-driver)。Kylin 支持 NVIDIA CUDA,因此驱动通常可用。
    • 安装容器运行时(如 Docker、containerd、Podman 或 CRI-O)。如果未安装 Docker,请先运行 sudo yum install docker 并启动服务(sudo systemctl enable --now docker)。
    • 系统需有 NVIDIA GPU 硬件支持。
    • 如果使用 SELinux(Kylin 默认启用),安装后可能需调整策略(见故障排除)。
    • 所有命令需 root 权限,使用 sudo 执行。
  • 潜在问题 :Kylin 的仓库可能需额外配置(如启用 EPEL)。如果 yum 命令失败,先运行 sudo yum update 更新系统。
步骤 1: 安装前提包

安装 curl(用于下载仓库配置):

bash 复制代码
sudo yum install -y curl
步骤 2: 配置 NVIDIA Container Toolkit 仓库

添加 NVIDIA 的 RPM 仓库:

bash 复制代码
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
步骤 3: 安装 NVIDIA Container Toolkit 包
bash 复制代码
sudo yum install -y nvidia-container-toolkit

下面的内容本次没有采用

可选:如果需要实验性包,启用仓库:

bash 复制代码
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
步骤 3: 安装 NVIDIA Container Toolkit 包

安装最新版本(当前推荐 1.18.0-1,根据官方文档):

bash 复制代码
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1
sudo yum install -y \
nvidia-container-toolkit-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1-${NVIDIA_CONTAINER_TOOLKIT_VERSION}
  • 如果版本不可用,可省略版本号直接安装:sudo yum install -y nvidia-container-toolkit(会安装最新可用版本)。
  • 验证安装:运行 nvidia-ctk --version,应显示版本信息。
步骤 4: 配置容器运行时

根据你的容器引擎配置 NVIDIA 运行时。以下是常见配置:

对于 Docker
  1. 配置 Docker 运行时:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=docker

    这会修改 /etc/docker/daemon.json 文件。

  2. 重启 Docker 服务:

    bash 复制代码
    sudo systemctl restart docker

Rootless 模式(非 root 用户)

  • 使用 nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
  • 重启用户 Docker:systemctl --user restart docker
  • 配置:sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
对于 containerd(推荐用于 Kubernetes)
  1. 配置 containerd:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=containerd

    这会创建 /etc/containerd/conf.d/99-nvidia.toml

  2. 重启 containerd:

    bash 复制代码
    sudo systemctl restart containerd
对于 Podman(推荐用于 rootless 容器)
  • NVIDIA 推荐使用 CDI(Container Device Interface)访问 GPU,无需额外 nvidia-ctk 配置。
  • 直接运行容器:podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
  • 如果需 SELinux 支持:添加 --security-opt=label=disable --hooks-dir=/usr/share/containers/oci/hooks.d/
对于 CRI-O(Kubernetes)
  1. 配置 CRI-O:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=crio
  2. 重启 CRI-O:

    bash 复制代码
    sudo systemctl restart crio
步骤 5: 测试安装

运行一个测试容器验证 GPU 访问(使用 NVIDIA 官方 CUDA 镜像):

bash 复制代码
# 对于 Docker
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi

# 对于 Podman
podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi

# 对于 containerd/nerdctl
nerdctl run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
  • 输出应显示 nvidia-smi 的 GPU 信息(如 GPU 型号、内存)。如果失败,检查驱动安装或日志(journalctl -u docker)。
故障排除
  • 仓库添加失败 :确保网络正常,或手动下载 repo 文件。Kylin 可能需启用 EPEL:sudo yum install epel-release
  • 包依赖冲突 :运行 sudo yum clean all 清理缓存,或检查 NVIDIA 驱动版本(nvidia-smi)。
  • SELinux 问题 (Kylin 默认启用):容器启动失败时,临时禁用:setenforce 0,或安装 SELinux 策略:sudo yum install container-selinux。永久调整:编辑 /etc/selinux/config 设置 SELINUX=permissive 并重启。
  • systemd cgroup 驱动问题 :如果重载 daemon 后 GPU 丢失,参考 NVIDIA 故障排除
  • Kylin 特定 :如果官方仓库不兼容,检查 Kylin 文档(https://www.kylinos.cn/)或 NVIDIA CUDA 指南(支持 Kylin)。可尝试从源代码构建:git clone https://github.com/NVIDIA/nvidia-container-toolkit && cd nvidia-container-toolkit && make
  • 日志检查dmesg | grep nvidia/var/log/messages

安装完成后,你可以构建和运行 GPU 加速容器。如果遇到具体错误,提供命令输出,我可以进一步诊断!

❤️ 一起学AI


  • ❤️ 如果文章对你有些许帮助、蟹蟹各位读者大大点赞、评论鼓励博主的每一分认真创作
相关推荐
学传打活4 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活9 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16817 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心19 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552725 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552725 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节