跳转至

GPU Operator 离线安装

d.run 预置了 CentOS 7.9,内核为 3.10.0-1160 的 GPU Operator 离线包。 本文介绍如何离线部署 GPU Operator,覆盖 NVIDIA GPU 以下几种使用模式的参数配置:

  • 整卡模式
  • vGPU 模式
  • MIG 模式

Note

安装后不支持从 MIG 模式切换为整卡模式或 vGPU 模式,仅支持整卡模式与 vGPU 模式的一键切换,请提前规划好您的使用模式。

详情请参考:NVIDIA GPU 卡使用模式,本文使用的 AMD 架构的 Centos 7.9 (3.10.0-1160)进行演示。如需使用 redhat8.4 部署, 请参考向火种节点仓库上传 Red Hat GPU Opreator 离线镜像构建 Red Hat 8.4 离线 yum 源

前提条件

  1. 用户已经在平台上安装了 v0.12.0 及以上版本的 addon 离线包。
  2. 待部署 GPU Operator 的集群节点内核版本必须完全一致。节点 发行版和 GPU 卡型号在 GPU 支持矩阵 范围内。

操作步骤

参考如下步骤为集群安装 GPU Operator 插件。

  1. 登录平台,进入 容器管理 -> 待安装 GPU Operator 的集群 -> 进入集群详情。

  2. Helm 模板 页面,选择 全部仓库 ,搜索 gpu-operator

  3. 选择 gpu-operator ,点击 安装

  4. 参考下文参数配置,配置 gpu-operator 安装参数,完成 gpu-operator 的安装。

参数配置

基本参数配置

  • 名称 :输入插件名称。
  • 命名空间 :选择将插件安装的命名空间。
  • 版本 :插件的版本,此处以 23.6.10 版本为例。
  • 就绪等待 :启用后,所有关联资源都处于就绪状态,才会标记应用安装成功。
  • 失败删除 :安装失败,则删除已经安装的关联资源。开启后,将默认同步开启 就绪等待
  • 详情日志 :开启后,将记录安装过程的详细日志。

高级参数配置

Operator 参数配置

  1. InitContainer.image :配置 CUDA 镜像,推荐默认镜像: nvidia/cuda
  2. InitContainer.repository :CUDA 镜像所在的镜像仓库,默认为 nvcr.m.daocloud.io 仓库
  3. InitContainer.version : CUDA 镜像的版本,请使用默认参数

Driver 参数配置

  1. Driver.enable :配置是否在节点上部署 NVIDIA 驱动,默认开启, 如果您在使用 GPU Operator 部署前,已经在节点上部署了 NVIDIA 驱动程序,请关闭。
  2. Driver.image :配置 GPU 驱动镜像,推荐默认镜像: nvidia/driver
  3. Driver.repository :GPU 驱动镜像所在的镜像仓库,默认为 nvidia 的 nvcr.io 仓库。
  4. Driver.version :GPU 驱动镜像的版本,离线部署请使用默认参数,仅在线安装时需配置, 不同类型操作系统的 Driver 镜像的版本存在如下差异, 详情可参考:Nvidia GPU Driver 版本, 如下不同操作系统的 Driver Version 示例:

    Note

    系统默认提供 525.147.05-centos7 的镜像,其他镜像需要参考向火种节点仓库上传镜像 。 注意版本号后无需填写 ubantu、centos、Red Hat等操作系统名称,若官方镜像含有操作系统后缀,请手动移除

    • Red Hat 系统,例如 525.105.17
    • Ubuntu 系统,例如 535-5.15.0-1043-nvidia
    • CentOS 系统,例如 525.147.05
  5. Driver.RepoConfig.ConfigMapName :用来记录 GPU Operator 的离线 yum 源配置文件名称, 当使用预置的离线包时,global 集群可直接执行如下命令,工作集群 参考 Global 集群任意节点的 yum 源配置

    • global 集群配置

      kubectl create configmap local-repo-config -n gpu-operator --from-file=CentOS-Base.repo=/etc/yum.repos.d/extension.repo
      
    • 工作集群配置

    参考 Global 集群任意节点的 yum 源配置
    1. 使用 ssh 或其它方式进入 Global 集群的任意节点,获取平台离线源配置文件 extension.repo

      cat /etc/yum.repos.d/extension.repo #查看 extension.repo 中的内容。
      

      预期输出如下:

      [extension-0]
      async = 1
      baseurl = http://x.x.x.x:9000/kubean/centos/$releasever/os/$basearch
      gpgcheck = 0
      name = kubean extension 0
      
      [extension-1]
      async = 1
      baseurl = http://x.x.x.x:9000/kubean/centos-iso/$releasever/os/$basearch
      gpgcheck = 0
      name = kubean extension 1
      
    2. 复制上述 extension.repo 文件中的内容,在待部署 GPU Operator 的集群的 gpu-operator 命名空间下, 新建名为 local-repo-config 的配置文件,可参考创建配置项进行创建。

      Note

      配置 key 值必须为 CentOS-Base.repo , value 值点离线源配置文件 extension.repo 中的内容。

    其它操作系统或内核可参考如下链接创建 yum 源文件:

Toolkit 配置参数

  1. Toolkit.enable :默认开启,该组件让 conatainerd/docker 支持运行需要gpu的容器。

  2. Toolkit.image :配置 Toolkit 镜像,推荐默认镜像: nvidia/k8s/container-toolkit

  3. Toolkit.repository :所在的镜像仓库,默认为 nvcr.m.daocloud.io 仓库。

  4. Toolkit.version :Toolkit 镜像的版本,版本号与官网保持一致即可。默认使用 centos 的镜像,如果使用ubuntu,需要手动修改 addon 的 yaml, 将 centos 改成 ubuntu。具体型号参考 NVIDIA Container Toolkit

MIG 配置参数

详细配置方式请参考开启 MIG 功能

  1. MigManager.enabled :是否启用 MIG 能力特性。
  2. MigManager.Config.name: MIG 的切分配置文件名,用于定义 MIG 的(GI, CI)切分策略。 默认为 default-mig-parted-config 。自定义参数参考开启 MIG 功能
  3. Mig.strategy :节点上 GPU 卡的 MIG 设备的公开策略。NVIDIA 提供了两种公开 MIG 设备的策略: singlemixed 策略,详情参考 NVIDIA GPU 卡模式说明

Node-Feature-Discovery 配置参数

Node-Feature-Discovery.enableNodeFeatureAPI :启用或禁用节点特性 API(Node Feature Discovery API)。

  • 当设置为 true 时,启用了节点特性 API。
  • 当设置为 false未设置 时,禁用节点特性 API。

下一步操作

完成上述相关参数配置和创建后:

  1. 如果使用 整卡模式应用创建时可使用 GPU 资源

  2. 如果使用 vGPU 模式 ,完成上述相关参数配置和创建后,下一步请完成 vGPU Addon 安装

  3. 如果使用 MIG 模式,并且需要给个别 GPU 节点按照某种切分规格进行使用,否则按照 MigManager.Config 中的 default 值进行切分。

    • single 模式请给对应节点打上如下 Label:

      kubectl label nodes {node} nvidia.com/mig.config="all-1g.10gb" --overwrite
      
    • mixed 模式请给对应节点打上如下 Label:

      kubectl label nodes {node} nvidia.com/mig.config="custom-config" --overwrite
      

​ 切分后,应用可使用 MIG GPU 资源