在 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 numbervgpu coresvgpu memory
  8. 确认配额值后,创建项目。

对于现有项目

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

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

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

创建命名空间时

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

对于现有命名空间

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

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

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

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

在创建或扩缩容原生应用之前,请使用这些页面检查 gpu numbervgpu coresvgpu 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 numbervgpu coresvgpu memory 配额。
  • 如果在更新项目配额后工作负载仍无法调度,请检查命名空间 ResourceQuota、工作负载资源请求以及目标集群中的实际 GPU 容量。