切换 Ascend Device Plugin 的所有者
在需要在由 NPU Operator 管理的直接分配与 HAMi 管理的分配之间切换 Ascend 设备暴露方式时,请使用此操作步骤。此切换会改变哪个 Device Plugin 注册并分配物理设备;它不会替换由 NPU Operator 提供的 Ascend Driver、OCI Runtime、ascend RuntimeClass,或可选的 NPU Exporter。
请在维护窗口内执行此操作。更改 Device Plugin 之前,请停止或迁移受影响所有权范围内的所有 Ascend 工作负载。即使 Device Plugin 退出,现有 Pod 也可能保留旧分配;而重启后的 Pod 不能安全地重用该状态。
NPUOperatorCtl.spec.devicePlugin.enabled 设置用于控制该 NPU Operator 实例所选节点上的原生 Ascend Device Plugin。请将此切换视为应用于完整的所有权范围。除非已安装产品明确提供互不重叠的 Device Plugin 放置方式,否则不要在同一范围内同时混用 direct 和 HAMi 所有者。
目录
准备工作从直接分配切换到 HAMi1. 停止 Ascend 工作负载2. 禁用 NPU Operator 原生 Device Plugin3. 验证原生所有者已停止4. 启动 HAMi Ascend Device Plugin5. 验证新所有者和资源从 HAMi 切换回直接分配停止和回滚条件准备工作
-
使用 选择 HAMi 部署场景 确认工作负载需要 HAMi 管理的分配方式。
-
安装
Alauda Build of NPU Operator,并通过 Ascend NPU 厂商基础文档 验证 Driver、OCI Runtime 和ascendRuntimeClass。 -
安装
Alauda Build of HAMi核心插件,并启用其 Ascend 调度集成。 -
获取集群管理员访问权限,并确定
NPUOperatorCtl的名称和命名空间。 -
在切换前记录当前的自定义资源和节点可分配资源。
将当前所有者配置保存到安全的工作目录中,以便在切换失败时恢复:
从直接分配切换到 HAMi
1. 停止 Ascend 工作负载
停止、迁移或缩减受影响所有权范围内使用 Ascend 资源的所有工作负载。确认没有剩余 Pod 正在使用要切换节点上的 NPU。
更改 Device Plugin 不会迁移正在运行的 Pod。只有在新所有者处于 Ready 状态且节点重新报告其资源后,才重新创建代表性工作负载。
2. 禁用 NPU Operator 原生 Device Plugin
更新面向用户的 NPUOperatorCtl 资源。保持 Driver、OCI Runtime、ascend RuntimeClass 以及其他必需组件处于启用状态。
对于现有实例,请应用等效的 merge patch:
不要编辑生成的 NPUClusterPolicy,不要缩减原生 DaemonSet,也不要仅删除其 Pod。NPU Operator 拥有这些资源,可以恢复手动修改。
3. 验证原生所有者已停止
分别验证期望设置、生成的策略以及最终的工作负载:
NPU Operator 策略名称为 cluster。仅当两个配置值都为 false,且受影响范围内没有运行原生 ascend-device-plugin Pod 时,才继续。DaemonSet 命令在协调完成后返回空结果是预期行为。
如果 NPUOperatorCtl 报告为 false,但生成的策略仍为 true,或者原生 DaemonSet 仍处于 Ready 状态,请停止切换。检查 NPU Operator 自定义资源状态和控制器日志;如果协调未能收敛,请联系支持。不要在原生所有者仍处于活动状态时启动 HAMi Ascend Device Plugin。
4. 启动 HAMi Ascend Device Plugin
安装 Operator Bundle,并按照 安装 HAMi Ascend Device Plugin 创建或更新 HAMiAscendDevicePlugin 实例。确认其 node selector 精确覆盖预期的 Ascend 节点,并且 Driver host path 与 NPU Operator driver 模式匹配。
等待生成的 DaemonSet:
5. 验证新所有者和资源
对于受影响设备,只有 hami-ascend-device-plugin 应处于 Ready 状态。在重新创建工作负载之前,节点必须报告由已安装软件包提供的、由 HAMi 管理的 Ascend 资源。仅凭资源名称不能证明所有权,因为 direct 和 HAMi 路径可以使用相同的 huawei.com/Ascend* 命名空间。
从 Ascend NPU 上的 HAMi 或 Ascend vNPU 上的 HAMi 运行一个工作负载。确认其进入 Running 状态,使用 runtimeClassName: ascend,并且可以执行 npu-smi info 以及设备内存或推理检查。
从 HAMi 切换回直接分配
此操作步骤会将完整的 NPU Operator Device Plugin 范围恢复为直接分配。
-
停止或迁移受影响范围内所有由 HAMi 管理的 Ascend 工作负载。
-
通过其所属 API 保存并删除
HAMiAscendDevicePlugin实例: -
等待
hami-ascend-device-plugin从受影响节点中消失。在 HAMi Device Plugin Pod 仍暴露相同设备时,不要启用原生所有者。 -
通过
NPUOperatorCtl恢复原生所有者: -
验证
NPUOperatorCtl.spec.devicePlugin.enabled和NPUClusterPolicy.spec.devicePlugin.managed都为true,原生ascend-device-pluginDaemonSet 处于 Ready 状态,并且节点报告直接分配资源。 -
按照 直接请求 Ascend NPU 资源 重新创建直接分配工作负载。
仅当其他受支持的 HAMi Ascend 范围仍在使用 Alauda Build of HAMi Ascend Device Plugin 时,才保留其安装。否则,请按照 卸载 HAMi 组件 在直接路径通过验证后移除未使用的 Operator Bundle。
停止和回滚条件
如果出现以下任一情况,请停止更改并返回到上一次单一所有者状态:
- 旧的 Device Plugin 未离开受影响节点;
- 新的 Device Plugin DaemonSet 未变为 Ready;
- 节点可分配资源未收敛到预期的软件包契约;
- 代表性工作负载无法启动或无法访问分配的 NPU。
在恢复先前所有者之前,请通过其所属自定义资源移除或停止新所有者。绝不要把同时运行两个所有者作为回滚捷径。