请求 NPU 资源

在安装 Alauda Build of NPU Operator 后,工作负载通过 Kubernetes 扩展资源名称请求 Ascend NPU。

本页介绍如何通过 Alauda Build of NPU Operator 直接分配 NPU。对于 HAMi 共享、虚拟化、vNPU 行为,或 Ascend 设备上的 HAMi 专用资源键,请参阅 HAMi 文档。

资源键

硬件常见资源键示例单位
Ascend 910 系列通常为 huawei.com/Ascend910;某些环境可能报告其他 huawei.com/Ascend*count
Ascend 310Phuawei.com/Ascend310Pcount

资源键必须与 device plugin 在节点可分配资源中报告的名称一致。不要仅根据芯片产品名称推导资源键。例如,Ascend 910B 节点仍可能报告 huawei.com/Ascend910

kubectl get node ${nodeName} -o jsonpath='{.status.allocatable}'

工作负载示例

在启用默认 admission webhook 的情况下,在提交的 manifest 中请求 NPU 资源即可。webhook 会在创建 Pod 之前添加 runtimeClassName: ascend,而对应的 runtime handler 会注入设备和 Driver 文件。

如果 webhook 已禁用,请显式设置 runtimeClassName: ascend

apiVersion: v1
kind: Pod
metadata:
  name: npu-workload
spec:
  restartPolicy: Never
  containers:
  - name: app
    image: <your-npu-image>
    resources:
      limits:
        <huawei.com/Ascend-resource-key>: 1

例如,如果节点报告 huawei.com/Ascend310P,请使用:

resources:
  limits:
    huawei.com/Ascend310P: 1

ACP 中的配额字段

如果节点已报告该资源,但 ACP 配额页面未显示,请在 ACP 中配置 accelerator resource 元数据。请参阅 加速器资源配额

RuntimeClass 行为

创建工作负载后,请检查已准入的 Pod:

kubectl get pod npu-workload -o jsonpath='{.spec.runtimeClassName}{"\n"}'

结果应为 ascend。如果 manifest 已经设置了此 RuntimeClass,则仍然有效;webhook 会保留显式配置的值不变。