.. _install_nvidia_container_toolkit_for_containerd: ============================================ 为containerd安装NVIDIA Container Toolkit ============================================ 准备工作 =========== 在部署NVIDIA Container Toolkit之前 - 首先 :ref:`install_nvidia_linux_driver_in_ovmf_vm` (比较波折,请参考我的实践记录) - 检查系统确保满足: - NVIDIA Linux drivers 版本 >= 418.81.07 - 内核要求 > 3.10 - Docker >= 19.03 - NVIDIA GPU架构 >= Kepler :ref:`containerd` =================== 按照 `containerd官方介绍文档 `_ 完成 :ref:`containerd` 安装,例如,我采用 :ref:`install_containerd_official_binaries` .. note:: `NVIDIA Cloud Native Documentation: Installation Guide >> containerd `_ 提供了Ubuntu系统安装containerd的步骤介绍,可参考。 - 在 :ref:`install_containerd_official_binaries` 有一步是生成默认配置文件(我当时仅修改了一个参数 ``SystemdCgroup = true`` ),按照NVIDIA手册,先执行生成默认配置,然后再执行patch修订: .. literalinclude:: ../container_runtimes/containerd/install_containerd_official_binaries/generate_containerd_config_k8s :language: bash :caption: 生成Kuberntes自举所需的默认containerd网络配置 - 要确保结合 :ref:`containerd` 使用NVIDIA Container Runtime,需要做以下附加配置: 将 ``nvidia`` 作为runtime添加到配置中,并且使用 ``systemd`` 作为cgroup driver 执行以下命令创建 ``containerd-config.path`` 文件: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/containerd-config.patch.sh :language: bash :caption: 创建 containerd-config.patch 补丁文件 .. note:: NVIDIA提供的patch文件实际上 :ref:`install_containerd_official_binaries` 生成的默认 ``config.toml`` 不兼容,所以我实际是手工修改 .. literalinclude:: install_nvidia_container_toolkit_for_containerd/config.toml :language: bash :caption: 修订 /etc/containerd/config.toml :emphasize-lines: 13-21 - 重启 ``containerd`` : .. literalinclude:: install_nvidia_container_toolkit_for_containerd/restart_containerd :language: bash :caption: 重启 containerd - 通过Docker ``helo-world`` 容器测试: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/test_containerd_nvidia-container-runtime :language: bash :caption: 重启 containerd .. note:: 注意,此时还没有安装 NVIDIA Container Toolkit ,所以实际上还没有 ``/usr/bin/nvidia-container-runtime`` ,插件尚未工作。上述验证只是表明 ``containerd`` 能工作 安装 NVIDIA Container Toolkit ================================ .. note:: 我只在 :ref:`ubuntu_linux` 22.04 虚拟机上安装实践,其他操作系统,例如 :ref:`redhat_linux` 系列请参考官方 `NVIDIA Cloud Native Documentation: Installation Guide >> containerd `_ - 在 :ref:`ubuntu_linux` 22.04 虚拟机 中添加NVIDIA仓库配置和GPG密钥: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/add_nvidia_repo_gpg_key :language: bash :caption: 在Ubuntu环境添加NVIDIA官方仓库配置和GPG密钥 需要注意,实际上添加到 ``/etc/apt/sources.list.d/nvidia-container-toolkit.list`` 仓库配置内容是:: deb https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) / - 执行安装: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/install_nvidia_container_toolkit :language: bash :caption: 在Ubuntu环境安装NVIDIA Container Toolkit(使用官方软件仓库) - 检查安装的软件包: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/check_nvidia_container_toolkit_install :language: bash :caption: 在Ubuntu环境检查已经安装的NVIDIA软件包 测试安装 =========== - 测试GPU容器: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/test_nvidia_gpu_container :language: bash :caption: 测试GPU容器运行 如果没有异常,则验证容器输出信息类似如下: .. literalinclude:: install_nvidia_container_toolkit_for_containerd/test_nvidia_gpu_container_output :language: bash :caption: 测试GPU容器运行输出信息显示NVIDIA Container Toolkit安装成功 参考 ======== - `NVIDIA Cloud Native Documentation: Installation Guide >> containerd `_