升级

本页面介绍如何升级已安装的 HAMi 产品线组件:Alauda Build of HAMi、后端相关的 Alauda Build of HAMi Ascend Device Plugin,以及可选的 Alauda Build of HAMi-WebUI

在升级之前,请确认当前启用的后端路径以及工作负载当前使用的资源键。升级后,请以当前交付包和版本页面作为后端支持信息的准确信源。

升级前准备

  1. 在更改已安装版本之前,请先查看 Versions and Components 中支持的目标组合,以及 Release Notes 中与版本相关的变更。

  2. 在更改已安装版本之前,请确保 ACP 中已提供所有目标产品包。

  3. 记录当前的 cluster-plugin 表单值、启用的后端、节点标签、RuntimeClass、资源键以及 device-plugin 所有者。

  4. 备份包含节点特定配置的 HAMi ConfigMap。如果使用了动态 MIG 或其他直接 ConfigMap 自定义配置,则必须执行此操作:

    kubectl -n <hami-namespace> get configmap hami-device-plugin \
      hami-scheduler-device -o yaml > hami-config-before-upgrade.yaml
  5. 如果已安装 Ascend Device Plugin,请保存其自定义资源:

    kubectl -n <hami-namespace> get hamiadp hami-ascend-device-plugin \
      -o yaml > hami-adp-before-upgrade.yaml
  6. 如果已安装 HAMi-WebUI,请记录其 Prometheus 地址来源和 NodePort 选择。请从当前 monitoring Secret 重新生成认证值,而不要存储已解码的用户名或密码。

请按照目标兼容性矩阵要求的顺序升级组件。如果目标 HAMi 版本需要特定版本的 HAMi-WebUI,请在升级 HAMi 之前或同时升级 HAMi-WebUI。Ascend Device Plugin 应作为单独的 OperatorHub 操作进行升级。

升级 HAMi

重要变更(v2.9)

变更所需操作
HAMi v2.9.x 使用 Alauda Build of HAMi-WebUI v1.10.3 支持的新指标名称。请在升级到 HAMi v2.9.x 之前或同时将 HAMi-WebUI 升级到 v1.10.3。不要在 HAMi v2.9.x 中使用 HAMi-WebUI v1.10.0。
scheduler 的自定义镜像路径在 v2.9.0 交付包中已完全支持。如果集群需要显式指定 scheduler 镜像,请配置 scheduler.kubeScheduler.customImage;当其为空时,镜像将根据目标集群的 Kubernetes 版本和已配置的镜像仓库生成。
Alauda 交付包会为带有污点的加速器节点上的 HAMi scheduler 和 device-plugin 工作负载配置标准 toleration。请保持节点污点和 toleration 与目标集群一致。升级后,请确认这两个工作负载均已调度并处于就绪状态。
正式插件包将目标集群的 scheduler 镜像与 HAMi 所拥有的包镜像分开管理。不要将集群的 scheduler 镜像添加到 HAMi 包拥有的相关镜像中;请确认目标集群会提供自己的 scheduler 镜像。

重要变更(v2.8)

变更所需操作
devicePlugin.nvidianodeSelector 已重命名为 devicePlugin.nvidiaNodeSelector如果你直接覆盖 Helm values,请在升级前更新该键名。
监控资源配置已从 devicePlugin.vgpuMonitor.resources 移至 devicePlugin.monitor.resources如果你自定义了监控资源,请将这些值迁移到新路径。
更早的 Alauda Build of HAMi-WebUI v1.5.0 与 HAMi v2.8 不兼容。请将 Alauda Build of HAMi-WebUI 升级到同一产品线提供的 v1.10.x 版本。
Ascend 支持由 Enable Ascend 插件选项控制。如果目标 HAMi 部署使用 Ascend NPU 或 Ascend vNPU,请显式启用 Enable Ascend。该选项默认处于禁用状态。

不要将 release 版本分支的安装页面作为 vendor driver、device plugin 或 exporter 所有权的准确信源。请使用当前 NVIDIA GPU 或 Ascend NPU vendor 基础文档来确认这些组件的信息。

重要变更(v2.5 -> v2.6)

版本参数可用性升级后的所需操作
HAMi v2.5插件表单中不包含 NVIDIA Runtime Class NameCreate NVIDIA Runtime Class不适用
HAMi v2.6在新的节点上部署插件实例时,必须配置这些参数。更新插件部署参数:
- NVIDIA Runtime Class Name: hami-nvidia
- Create NVIDIA Runtime Class: true
NOTE

从 v2.5 升级到 v2.6 不应影响现有应用。请在组件升级后对应用使用滚动更新,以减少意外的运行时差异。

操作步骤

  1. 如果目标 HAMi 版本需要更高版本的 ACP,请先升级 ACP。
  2. 将目标版本的 Alauda Build of HAMi 包上传到 ACP。
  3. 确认所选后端仍受目标包支持,尤其是 Ascend NPU 或 Ascend vNPU 路径。
  4. 进入 Administrator -> Marketplace -> Cluster Plugins,切换到目标集群,并升级 Alauda Build of HAMi
  5. 参考 Verification 验证组件 Pod、节点可分配资源键、ACP 配额元数据以及工作负载调度。

只有在将已备份的节点自定义配置与目标版本生成的配置进行比较后,才重新应用该配置。不要使用旧版 schema 直接整体替换新的 ConfigMap。

升级 HAMi Ascend Device Plugin

  1. 确认目标 Operator Bundle 支持目标 HAMi 版本和所选 Ascend 路径。
  2. 通过 OperatorHub 升级 Alauda Build of HAMi Ascend Device Plugin。如果 Subscription 使用手动批准,请审核并批准生成的 InstallPlan。
  3. 除非 release notes 要求修改字段,否则请保留现有的 HAMiAscendDevicePlugin 自定义资源。
  4. 确认 CSV 进入 Succeeded,自定义资源完成 reconcile,且 DaemonSet 变为 Ready。
  5. 确认在 rollout 期间原生 Ascend Device Plugin 仍保持停止状态。

升级 HAMi-WebUI

  1. 选择目标 HAMi 版本所需的 HAMi-WebUI 版本。
  2. 按照 Install HAMi-WebUI 中的步骤重新生成并预检 Prometheus 设置。
  3. 通过 ACP cluster-plugin 页面升级 Alauda Build of HAMi-WebUI,同时保留预期的 Prometheus 地址和 NodePort 配置。
  4. 验证 WebUI Pod 变为 Ready,且后端 instant-vector 查询返回 HTTP 200 和 JSON data 数组。
  5. 在 v1.10.3 中,请使用 Pod 名称验证任务列表搜索。该列表以 Pod 级别展示,并且有意不将内部容器名视为任务名。

不要接受仅能打开页面的冒烟测试。页面虽然打开,但其 Prometheus 请求返回 HTTP 523,不能视为升级成功。

升级后的后端检查

升级后,请验证:

  • HAMi Pod 正在预期的命名空间中运行;
  • 为 HAMi 选择的节点暴露了预期的 HAMi 资源键;
  • ACP 配额元数据仍与用户请求的资源键一致;
  • 相同设备未同时通过冲突的 vendor direct plugin 路径暴露;
  • 监控使用的是为该后端和版本记录的 exporter 路径。

对于 Ascend NPU 和 Ascend vNPU,不要沿用早期版本中的资源键名称。请以当前交付包和版本页面作为准确信源。

回滚条件

如果目标组件无法完成 reconcile、所需资源键消失、目标运行时路径失败,或者代表性工作负载无法分配和释放设备,则应回滚。请使用 ACP 或 OLM 所有者恢复到之前的组件版本及其兼容配置。包降级并不会自动使旧版 ConfigMap 或自定义资源 schema 变得安全;仅恢复回滚版本支持的字段,并重新执行 Verification

相关参考