加速器配额

加速器产品通常通过 Kubernetes 扩展资源名称暴露资源。安装产品后,ACP 可以在项目和命名空间配额中使用这些资源名称。

配额资源

在集群中安装加速器产品后,ACP 可以在项目或命名空间作用域下显示相应的加速器配额字段。具体的资源名称和单位取决于产品。

示例包括:

  • 物理 NVIDIA GPU 数量;
  • HAMi 虚拟 GPU 核心和内存资源;
  • Ascend NPU 资源;
  • DRA 或厂商特定的资源类型。

在 ACP 中显示配额字段

Kubernetes 节点可分配资源与 ACP 配额字段相关,但并不相同。节点可以报告加速器扩展资源,而 ACP 配额页面在将该资源显示为可选配额字段之前,还需要资源元数据。

如果节点已经报告了该加速器资源,但 ACP 配额页面没有显示它,请在 kube-public 命名空间中使用 ConfigMap 注册该资源元数据。

NOTE

要求如下:

  • 每个加速器资源名称创建一个 ConfigMap。
  • kube-public 命名空间中创建该 ConfigMap。
  • metadata.name 使用 cf-crl-<groupName>-<name> 格式。
  • metadata.labels.features.cpaas.io/type 设置为 CustomResourceLimitation
  • metadata.labels.features.cpaas.io/groupdata.group 设置为相同的组名称。
  • metadata.labels.features.cpaas.io/enabled 设置为 "true"
  • data.key 设置为准确的 Kubernetes 扩展资源名称,例如 nvidia.com/gpuallochuawei.com/Ascend910

使用以下字段控制 ACP 在配额页面中如何显示和应用该资源:

  • data.labelEndata.labelZh:显示给用户的名称。
  • data.descriptionEndata.descriptionZh:显示给用户的帮助文本。
  • data.limits:设置为 requiredoptional
  • data.requests:设置为 disabledfromLimits
  • data.resourceUnit:资源单位,例如 count
  • data.relatedResources:应一起使用的资源名称。
  • data.excludeResources:不应与此资源混用的资源名称。
  • data.ignoreNodeCheck:当配额字段派生自其他资源且不需要直接检查节点可分配资源时,设置为 "true"

如果产品暴露多个资源名称,请为每个资源名称创建一个 ConfigMap。例如,共享 GPU 产品可能会分别暴露 GPU 核心和 GPU 内存的资源名称。

示例

HAMi NVIDIA
HAMi Ascend vNPU
Ascend 910
NVIDIA GPU

以下示例注册了 HAMi NVIDIA 资源字段,用于 GPU 数量、vGPU 核心和 vGPU 内存:

apiVersion: v1
data:
  dataType: integer
  defaultValue: "1"
  descriptionEn: Declare how many physical GPUs needs
  descriptionZh: 申请的物理 gpu 个数
  group: hami-nvidia
  groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
  key: nvidia.com/gpualloc
  labelEn: gpu number
  labelZh: gpu 个数
  limits: optional
  requests: disabled
  resourceUnit: "count"
  relatedResources: "nvidia.com/gpucores,nvidia.com/gpumem"
  excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
  runtimeClassName: ""
kind: ConfigMap
metadata:
  labels:
    features.cpaas.io/enabled: "true"
    features.cpaas.io/group: hami-nvidia
    features.cpaas.io/type: CustomResourceLimitation
  name: cf-crl-hami-nvidia-gpualloc
  namespace: kube-public
---
apiVersion: v1
data:
  dataType: integer
  defaultValue: "20"
  descriptionEn: Declare how many cores needs per physical GPU (%)
  descriptionZh: 每个物理 GPU 申请的算力(%)
  group: hami-nvidia
  groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
  key: nvidia.com/gpucores
  labelEn: vgpu cores
  labelZh: vgpu 算力
  limits: optional
  requests: disabled
  resourceUnit: "%"
  relatedResources: "nvidia.com/gpualloc,nvidia.com/gpumem"
  excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
  runtimeClassName: ""
  ignoreNodeCheck: "true"
kind: ConfigMap
metadata:
  labels:
    features.cpaas.io/enabled: "true"
    features.cpaas.io/group: hami-nvidia
    features.cpaas.io/type: CustomResourceLimitation
  name: cf-crl-hami-nvidia-gpucores
  namespace: kube-public
---
apiVersion: v1
data:
  dataType: integer
  defaultValue: "4000"
  descriptionEn: Declare how many memory needs per physical GPU (Mi)
  descriptionZh: 每个物理 GPU 申请的显存(Mi)
  group: hami-nvidia
  groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
  key: nvidia.com/gpumem
  labelEn: vgpu memory
  labelZh: vgpu 显存
  limits: optional
  requests: disabled
  resourceUnit: "Mi"
  relatedResources: "nvidia.com/gpualloc,nvidia.com/gpucores"
  excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
  runtimeClassName: ""
  ignoreNodeCheck: "true"
kind: ConfigMap
metadata:
  labels:
    features.cpaas.io/enabled: "true"
    features.cpaas.io/group: hami-nvidia
    features.cpaas.io/type: CustomResourceLimitation
  name: cf-crl-hami-nvidia-gpumem
  namespace: kube-public
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: cf-crl-hami-config
  namespace: kube-public
  labels:
    device-plugin.cpaas.io/config: "true"
data:
  deviceName: "HAMi"
  nodeLabelKey: "gpu"
  nodeLabelValue: "on"

对于其他加速器产品,请保持相同的 ACP 元数据模型,并将资源 key、标签、显示名称、单位和设备信息替换为该产品暴露的值。

配置配额

使用 ACP 配额页面执行以下操作:将集群添加到项目、创建命名空间或更改命名空间配额。请参阅加速器产品文档,了解某个产品暴露了哪些资源名称以及每个单位的含义。

配额页面

相关页面