在 Alauda Container Platform 中使用 HAMi 虚拟 GPU ResourceQuota

使用 Alauda Container Platform 在项目级和命名空间级配置 HAMi 虚拟 GPU 配额。平台将项目配额作为项目级 ProjectQuota 进行管理:项目内各命名空间 ResourceQuota 的总和必须保持在项目配置的限制范围内。

在 GPU 集群上创建 HAMi 扩展资源 ConfigMaps 后,Alauda Container Platform 中会显示 HAMi 扩展配额。如果配额类型列表中未显示 HAMi NVIDIA,请检查是否已安装 Alauda Build of Hami,以及是否已应用安装指南中的扩展资源 ConfigMaps。

前提条件

  • 目标业务集群已安装 Alauda Build of Hami。
  • 已在 GPU 集群中创建 HAMi 扩展资源 ConfigMaps。
  • 你有权限在 Alauda Container Platform 中创建项目或更新项目配额。
  • 目标项目已关联到提供 HAMi 资源的 GPU 集群。

HAMi 虚拟 GPU 配额字段

当平台要求你配置 HAMi NVIDIA 配额类型时,请使用以下字段:

字段Resource key单位描述
gpu numbernvidia.com/gpualloccount配额保留的物理 GPU 数量。当工作负载请求 GPU cores 和 memory 时,core 和 memory 的值按每个物理 GPU 进行统计。
vgpu coresnvidia.com/gpucoresintegerGPU 计算配额。100 表示一个物理 GPU 的全部计算能力。
vgpu memorynvidia.com/gpumemMi每个物理 GPU 的 GPU memory 配额。

配置项目级 HAMi 虚拟 GPU 配额

项目配额是该项目内所有命名空间配额的上限。

创建项目时

  1. 在 Alauda Container Platform 中,进入 Administrator -> Project Management。
  2. 单击 Create Project。
  3. 填写项目基本信息,然后选择提供 HAMi 资源的 GPU 集群。
  4. 单击 Next 打开项目配额设置步骤。
  5. 在所选集群中添加扩展配额。
  6. 将配额类型设置为 HAMi NVIDIA。
  7. 填写 gpu number、vgpu cores 和 vgpu memory。
  8. 确认配额值后,创建项目。

对于现有项目

  1. 在 Alauda Container Platform 中,进入 Administrator -> Project Management。
  2. 打开目标项目详情页。
  3. 更新该项目关联 GPU 集群的项目配额。
  4. 添加或编辑扩展配额类型 HAMi NVIDIA。
  5. 设置 gpu number、vgpu cores 和 vgpu memory,然后保存更改。

配置命名空间级 HAMi 虚拟 GPU 配额

命名空间的 HAMi 虚拟 GPU 配额会从分配到同一集群的项目配额中扣减。如果剩余项目配额不足,平台会拒绝创建或更新命名空间配额。

创建命名空间时

  1. 在 Alauda Container Platform 中打开目标项目。
  2. 单击 Create Namespace。
  3. 填写命名空间信息。
  4. 在 Resource Quota 部分,找到硬件加速器或扩展资源配额区域。
  5. 添加扩展资源配额,并将配额类型设置为 HAMi NVIDIA。
  6. 填写 gpu number、vgpu cores 和 vgpu memory。
  7. 保存命名空间。

对于现有命名空间

  1. 在 Alauda Container Platform 中打开目标项目。
  2. 打开目标命名空间详情页。
  3. 编辑命名空间的 Resource Quota。
  4. 添加或编辑扩展配额类型 HAMi NVIDIA。
  5. 设置 gpu number、vgpu cores 和 vgpu memory,然后保存更改。

在 Alauda Container Platform 中查看配额使用情况

配置完成 HAMi 虚拟 GPU 配额后,你可以在 Alauda Container Platform 的多个页面查看配额使用和分配情况:

  • 在项目详情页,Quota 表会显示项目级配额。对于 HAMi 资源,该表可以显示 Utilization 和 Quota Rate;其中,Utilization 表示已用配额占总配额的比例,Quota Rate 表示已分配配额占总配额的比例。
  • 在命名空间详情页,Resource Quotas 表会显示命名空间级信息,例如 Allocated、Quota 和 Quota Rate。
  • 在业务视图中命名空间范围的 Overview 页面,Resource Quotas 卡片可以显示当前命名空间配额和分配率。

在创建或扩缩容原生应用之前,请使用这些页面检查 gpu number、vgpu cores 和 vgpu memory 是否接近上限。

HAMi 虚拟 GPU 配额的强制执行行为

HAMi 虚拟 GPU 配额的强制执行方式不同于标准 Kubernetes ResourceQuota 的准入行为。

  • 对于标准 Kubernetes 资源配额,超出配额的请求通常会在 Pod 创建之前被拒绝。
  • 对于 Alauda Container Platform 中的 HAMi 扩展配额,配额可行性会在调度过程中由 hami-scheduler 进行评估。

在当前产品行为中,如果某个原生应用请求的 HAMi 资源超出了剩余命名空间配额,Pod 对象可能仍会先被创建,并保持在 Pending 状态,同时从 HAMi 调度器返回配额不足或调度失败信息。此行为与 HAMi 在调度器侧进行配额计算的模型一致。

故障排查

  • 如果 HAMi NVIDIA 在配额类型列表中不可用,请重新在 GPU 集群上应用 HAMi 扩展资源 ConfigMaps。
  • 如果命名空间配额创建或更新失败,请检查所请求的命名空间配额是否会超出同一 HAMi 资源的剩余项目配额。
  • 如果 Pod 已创建但仍处于 Pending 状态,请检查 hami-scheduler 的调度事件,并确认该命名空间仍有足够的 gpu number、vgpu cores 和 vgpu memory 配额。
  • 如果在更新项目配额后工作负载仍无法调度,请检查命名空间 ResourceQuota、工作负载资源请求以及目标集群中的实际 GPU 容量。