要使开发人员能够在 TKGS 集群上部署 AI/ML 工作负载,vSphere 管理员应设置 vSphere with Tanzu 环境以支持 NVIDIA GPU 硬件。

在 TKGS 集群上部署 AI/ML 工作负载的 vSphere 管理员工作流

下表概述了要在 TKGS 集群上部署 AI/ML 工作负载,vSphere 管理员需要执行的工作流。后面将详细介绍每个步骤。
步骤 操作 链接
0

查看系统要求。

请参见管理员步骤 0:查看系统要求

1

在 ESXi 主机上安装受支持的 NVIDIA GPU 设备。

请参见管理员步骤 1:在 ESXi 主机上安装受支持的 NVIDIA GPU 设备

2

设置适用于 vGPU 操作的 ESXi 设备图形设置。

请参见管理员步骤 2:针对 vGPU 操作配置每个 ESXi 主机

3

在每个 ESXi 主机上安装 NVIDIA vGPU Manager (VIB)。

请参见管理员步骤 3:在每个 ESXi 主机上安装 NVIDIA 主机管理器驱动程序

4

验证 NVIDIA 驱动程序操作和 GPU 虚拟化模式。

请参见管理员步骤 4:验证 ESXi 主机是否已做好执行 NVIDIA vGPU 操作的准备

5

在配置了 GPU 的集群上启用工作负载管理。结果在启用了 vGPU 的 ESXi 主机上运行的主管集群。

请参见管理员步骤 5:在配置了 vGPU 的 vCenter 集群上启用工作负载管理

6

为 Tanzu Kubernetes 版本创建* 或更新内容库,并在库中填充 vGPU 工作负载所需的受支持 Ubuntu OVA。

请参见 管理员步骤 6:使用 Tanzu Kubernetes Ubuntu 版本创建或更新内容库
注: * 如有必要。如果已为 TKGS 集群 Photon 映像创建了内容库,则无需为 Ubuntu 映像创建新的内容库。
7

创建自定义虚拟机类并选择特定的 vGPU 配置文件。

请参见管理员步骤 7:创建包含 vGPU 配置文件的自定义虚拟机类

8

为 TKGS GPU 集群创建并配置 vSphere 命名空间:为持久卷添加具有编辑权限和存储的用户。

请参见管理员步骤 8:为 TKGS GPU 集群创建和配置 vSphere 命名空间

9

将包含 Ubuntu OVA 的内容库和 vGPU 的自定义虚拟机类与您为 TGKS 创建的 vSphere 命名空间相关联。

请参见管理员步骤 9:将内容库和虚拟机类与 vSphere 命名空间相关联

10

验证是主管集群否已置备,是否可供集群运维人员访问。

请参见管理员步骤 10:验证主管集群是否可访问

管理员步骤 0:查看系统要求

根据以下系统要求设置环境,以便能够在 TKGS 集群上部署 AI/ML 工作负载。
要求 描述

vSphere 基础架构

vSphere 7 Update3 Monthly Patch 1

ESXi 内部版本 18778458 或更高版本

vCenter Server build 18644231 或更高版本

工作负载管理

vSphere 命名空间版本

0.0.11-18610518 或更高版本

主管集群

主管集群 版本

v1.21.0+vmware.1-vsc0.0.11-18610518 或更高版本

TKR Ubuntu OVA

Ubuntu Tanzu Kubernetes 版本

ob-18691651-tkgs-ova-ubuntu-2004-v1.20.8---vmware.1-tkg.2

NVIDIA vGPU 主机驱动程序

NGC 网站下载 VIB。有关详细信息,请参见 vGPU 软件驱动程序文档。例如:

NVIDIA-AIE_ESXi_7.0.2_Driver_470.51-1OEM.702.0.0.17630552.vib

用于 vGPU 的 NVIDIA 许可证服务器

您的组织提供的 FQDN

管理员步骤 1:在 ESXi 主机上安装受支持的 NVIDIA GPU 设备

要在 TKGS 上部署 AI/ML 工作负载,请在将启用工作负载管理的 vCenter 集群中的每个 ESXi 主机上安装一个或多个受支持的 NVIDIA GPU 设备。

要查看兼容的 NVIDIA GPU 设备,请参阅 VMware 兼容性指南

兼容的 NVIDIA GPU 设备列表。单击 GPU 设备型号可查看更多详细信息并订阅 RSS 源。

NVIDA GPU 设备应支持最新的 NVIDIA AI Enterprise (NVAIE) vGPU 配置文件。有关指导,请参阅 NVIDIA 虚拟 GPU 软件支持的 GPU 文档。

例如,以下 ESXi 主机上安装了两个 NVIDIA GPU A100 设备。

vSphere Client 中的“图形设备”选项卡列出了 NVIDIA GPU A100 设备。

管理员步骤 2:针对 vGPU 操作配置每个 ESXi 主机

通过启用直接共享和 SR-IOV,配置 vGPU 的每个 ESXi 主机。

在每个 ESXi 主机上启用直接共享

要解锁 NVIDIA vGPU 功能,请在将启用工作负载管理的 vCenter 集群中的每个 ESXi 主机上启用直接共享模式。

要启用 直接共享,请完成以下步骤。有关其他指导,请参见 vSphere 文档中的 配置图形设备
  1. 使用 vSphere Client 登录 vCenter Server
  2. 选择 vCenter 集群中的 ESXi 主机。
  3. 选择配置 > 硬件 > 图形
  4. 选择 NVIDIA GPU 加速器设备。
  5. 编辑图形设备设置。
  6. 选择直接共享
  7. 选择重新启动 X.Org 服务器。
  8. 单击确定保存配置。
  9. 右键单击 ESXi 主机,然后将其置于维护模式。
  10. 重新引导主机。
  11. 当主机再次运行时,将其退出维护模式。
  12. 对将启用工作负载管理的 vCenter 集群中的每个 ESXi 主机重复此过程。

“编辑图形设备设置”页面,其中选中“直接共享”和“重新启动 X.Org”服务器选项。

vSphere Client 中的“图形设备”选项卡列出启用了“直接共享”模式的 NVIDIA GPU A100 设备。

为 NVIDIA GPU A30 和 A100 设备启用 SR-IOV BIOS

如果使用多实例 GPU(MIG 模式)所需的 NVIDIA A30A100 GPU 设备,则必须在 ESXi 主机上启用 SR-IOV。如果未启用 SR-IOV,Tanzu Kubernetes 集群节点虚拟机将无法启动。如果发生这种情况,您会在启用了工作负载管理vCenter Server近期任务窗格中看到以下错误消息。

Could not initialize plugin libnvidia-vgx.so for vGPU nvidia_aXXX-xx. Failed to start the virtual machine. Module DevicePowerOn power on failed.

要启用 SR-IOV,请使用 Web 控制台登录到 ESXi 主机。选择管理 > 硬件。选择 NVIDIA GPU 设备,然后单击配置 SR-IOV。您可以从此处启用 SR-IOV。有关其他指导,请参见 vSphere 文档中的单根 I/O 虚拟化 (SR-IOV)

注: 如果将 vGPU 与网卡直通结合使用,请参阅以下主题以了解额外的 ESXi 配置步骤: 在 TKGS 集群(vGPU 和动态 DirectPath IO)上部署 AI/ML 工作负载的 vSphere 管理员附录

管理员步骤 3:在每个 ESXi 主机上安装 NVIDIA 主机管理器驱动程序

要运行具有 NVIDIA vGPU 图形加速的 Tanzu Kubernetes 集群节点虚拟机,请在将启用工作负载管理的 vCenter 集群中的每个 ESXi 主机上安装 NVIDIA 主机管理器驱动程序。

NVIDIA vGPU 主机管理器驱动程序组件打包在 vSphere 安装包 (VIB) 中。NVAIE VIB 由您的组织通过其 NVIDIA GRID 许可计划提供给您。VMware 既不提供 NVAIE VIB,也不提供它们的下载服务。根据 NVIDIA 许可计划,许可服务器由您的组织设置。有关详细信息,请参阅 NVIDIA 虚拟 GPU 软件快速入门指南

设置 NVIDIA 环境后,在每个 ESXi 主机上运行以下命令,将 NVIDIA 许可证服务器地址和 NVAIE VIB 版本替换为适合您环境的值。有关其他指导,请参见 VMware 技术支持知识库中的 在 ESXi 上安装和配置 NVIDIA VIB
注: 在 ESXi 主机上安装的 NVAIE VIB 版本必须与节点虚拟机上安装的 vGPU 软件版本相匹配。下面的版本仅作举例之用。
esxcli system maintenanceMode set --enable true
esxcli software vib install -v ftp://server.domain.example.com/nvidia/signed/NVIDIA_bootbank_NVIDIA-VMware_ESXi_7.0_Host_Driver_460.73.02-1OEM.700.0.0.15525992.vib
esxcli system maintenanceMode set --enable false
/etc/init.d/xorg restart

管理员步骤 4:验证 ESXi 主机是否已做好执行 NVIDIA vGPU 操作的准备

要验证每个 ESXi 主机是否都已准备好执行 NVIDIA vGPU 操作,请在将启用 工作负载管理的 vCenter 集群中的每个 ESXi 主机上执行以下检查:
  • 通过 SSH 登录到 ESXi 主机,进入 shell 模式,然后运行命令 nvidia-smi。NVIDIA 系统管理界面是由 NVIDA vGPU 主机管理器提供的命令行实用程序。运行此命令将返回主机上的 GPU 和驱动程序。
  • 运行以下命令以验证是否已正确安装 NVIDIA 驱动程序:esxcli software vib list | grep NVIDA
  • 验证主机是否配置了 GPU 直接共享并启用了 SR-IOV(如果使用的是 NVIDIA A30 或 A100 设备)。
  • 使用 vSphere Client,在为 GPU 配置的 ESXi 主机上创建一个包含 PCI 设备的新虚拟机。NVIDIA vGPU 配置文件应显示且可选择。“自定义硬件”选项卡,其中选中 NVIDIA vGPU 配置文件。

管理员步骤 5:在配置了 vGPU 的 vCenter 集群上启用工作负载管理

现在,ESXi 主机已配置为支持 NVIDIA vGPU,请创建包含这些主机的 vCenter 集群。要支持工作负载管理,vCenter 集群必须满足特定要求,包括共享存储、高可用性、全自动 DRS。

要启用工作负载管理,还需要选择网络堆栈(本机 vSphere vDS 网络连接或 NSX-T Data Center 网络连接)。如果使用 vDS 网络连接,则需要安装负载均衡器(NSX Advanced 或 HAProxy)。

启用 工作负载管理后,将获得一个在启用了 vGPU 的 ESXi 主机上运行的 主管集群。请参阅以下任务和文档以启用 工作负载管理
注: 如果您的 vCenter 集群已启用 工作负载管理,请跳过此步骤,即假设该集群使用为 vGPU 配置的 ESXi 主机。

管理员步骤 6:使用 Tanzu Kubernetes Ubuntu 版本创建或更新内容库

在配置了 GPU 的 vCenter 集群上启用 工作负载管理后,下一步是为 Tanzu Kubernetes 版本 OVA 映像创建内容库。
警告: 如果已为包含 Photon 映像的 Tanzu Kubernetes 版本创建了内容库,则只需将现有内容库与所需的 Ubuntu 映像进行同步。请勿为 TKGS 集群创建第二个内容库。这样做可能会导致系统不稳定。

NVIDIA vGPU 需要使用 Ubuntu 操作系统。VMware 提供了 Ubuntu OVA。不能将 PhotonOS Tanzu Kubernetes 版本用于 vGPU 集群。

要将此映像导入到 vSphere with Tanzu 环境中,请选择表中列出的方法之一,然后按照相应的说明进行操作。
内容库类型 描述
创建已订阅内容库并自动将 Ubuntu OVA 与您的环境同步。 创建、保护和同步 Tanzu Kubernetes 版本 的已订阅内容库
创建本地内容库并手动将 Ubuntu OVA 上载到您的环境。 创建、保护和同步 Tanzu Kubernetes 版本 的本地内容库
完成此任务后,您应该会看到内容库中包含了 Ubuntu OVA。

Ubuntu 中的 OVF 和 OVA 模板页面显示内容库中可用的 Ubuntu OVA。

管理员步骤 7:创建包含 vGPU 配置文件的自定义虚拟机类

下一步是创建包含 vGPU 配置文件的自定义虚拟机类。系统在创建 Tanzu Kubernetes 集群节点时将使用此类定义。

按照以下说明创建包含 vGPU 配置文件的自定义虚拟机类。有关其他指导,请参见 在 vSphere with Tanzu 中将 PCI 设备添加到虚拟机类
注: 如果将 vGPU 与网卡直通结合使用,请参阅以下主题以了解额外的步骤: 在 TKGS 集群(vGPU 和动态 DirectPath IO)上部署 AI/ML 工作负载的 vSphere 管理员附录
  1. 使用 vSphere Client 登录到 vCenter Server
  2. 选择工作负载管理
  3. 选择服务
  4. 选择虚拟机类
  5. 单击创建虚拟机类
  6. 配置选项卡上,配置自定义虚拟机类。
    配置字段 描述
    名称 输入自定义虚拟机类的自描述性名称,例如 vmclass-vgpu-1
    vCPU 计数 2
    CPU 资源预留 可选,单击“确定”留空
    内存 例如 80 GB
    内存资源预留 100%(如果在虚拟机类中配置了 PCI 设备,则强制使用此值)
    PCI 设备
    注: 针对 PCI 设备选择“是”将告知系统您使用的是 GPU 设备,并将更改虚拟机类配置以支持 vGPU 配置。

    例如:

    ""

  7. 单击下一步
  8. PCI 设备选项卡上选择添加 PCI 设备 > NVIDIA vGPU 选项。
  9. 配置 NVIDIA vGPU 型号。
    NVIDIA vGPU 字段 描述
    型号 NVIDIA vGPU > 型号菜单所提供的型号中选择 NVIDIA GPU 硬件设备型号。如果系统未显示任何配置文件,表示集群中的所有主机都不具有受支持的 PCI 设备。
    GPU 共享

    此设置定义如何在启用了 GPU 的虚拟机之间共享 GPU 设备。vGPU 实施有两种类型:时间共享多实例 GPU 共享

    在时间共享模式下,vGPU 调度程序指示 GPU 在一段时间内按顺序为每个启用了 vGPU 的虚拟机执行工作,并将尽最大努力平衡各 vGPU 的性能。

    MIG 模式允许多个启用了 vGPU 的虚拟机在单个 GPU 设备上并行运行。MIG 模式基于较新的 GPU 架构,仅在 NVIDIA A100 和 A30 设备上受支持。如果没有看到 MIG 选项,表示您选择的 PCI 设备不支持该选项。

    GPU 模式 计算
    GPU 内存 例如 8 GB
    vGPU 数量 例如 1

    例如,以下是在时间共享模式下配置的 NVIDIA vGPU 配置文件:

    “PCI 设备”选项卡,带有在时间共享模式下配置的 NVIDIA vGPU 配置文件。

    例如,以下是在具有受支持 GPU 设备的情况下在 MIG 模式下配置的 NVIDIA vGPU 配置文件:

    “PCI 设备”选项卡,带有在多实例 GPU 共享模式下配置的 NVIDIA vGPU 配置文件。

  10. 单击下一步
  11. 查看并确认您的选择。
  12. 单击完成
  13. 验证虚拟机类列表中是否有新的自定义虚拟机类。

管理员步骤 8:为 TKGS GPU 集群创建和配置 vSphere 命名空间

为计划置备的每个 TKGS GPU 集群创建一个 vSphere 命名空间。通过添加具有编辑权限的 vSphere SSO 用户配置命名空间,并附加用于持久卷的存储策略。

要执行此操作,请参见创建和配置 vSphere 命名空间

管理员步骤 9:将内容库和虚拟机类与 vSphere 命名空间相关联

创建并配置 vSphere 命名空间后,将包含 Ubuntu OVA 的内容库与 vSphere 命名空间相关联,并将具有 vGPU 配置文件的自定义虚拟机类与同一个 vSphere 命名空间相关联。
任务 描述
将包含用于 vGPU 的 Ubuntu OVA 的内容库与将在其中置备 TKGS 集群的 vSphere 命名空间相关联。

请参见为 Tanzu Kubernetes 版本配置 vSphere 命名空间

将具有 vGPU 配置文件的自定义虚拟机类与将在其中置备 TKGS 集群的 vSphere 命名空间相关联。

请参见将虚拟机类与 vSphere with Tanzu 中的命名空间关联

下例显示了已与可用于 vGPU 集群的内容库和自定义虚拟机类关联的已配置 vSphere 命名空间。

""

管理员步骤 10:验证主管集群是否可访问

最后一个管理任务是验证 主管集群 是否已置备,是否可供集群运维人员用于为 AI/ML 工作负载置备 TKGS 集群。

  1. 下载并安装 适用于 vSphere 的 Kubernetes CLI 工具

    请参见下载并安装 适用于 vSphere 的 Kubernetes CLI 工具

  2. 连接到 主管集群

    请参见以 vCenter Single Sign-On 用户的身份连接到 主管集群

  3. 为集群运维人员提供用于下载 适用于 vSphere 的 Kubernetes CLI 工具 的链接以及 vSphere 命名空间的名称。

    请参见在 TKGS 集群上部署 AI/ML 工作负载的集群运维人员工作流