Dynamia ppu-vgpu-device-plugin Chart 0.0.4
发布时间:2026-09-30
| 版本 | 上一版 | 本版 |
|---|---|---|
| Chart | 0.0.3 | 0.0.4 |
| appVersion | 1.0.5 | 1.0.5 |
本次仅调整 Chart 的默认资源命名和监控 Service 标签。插件与监控的默认镜像均保持为 ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.5,内置 PPU-HAMi-core 不变。已有部署升级时,需同时保留资源名称和 DaemonSet 选择器;直接采用新默认值会改变这两项配置。
HAMi Enterprise 兼容性
如果 Chart 0.0.3 下的 PPU 调度、显存与算力切分及授权已正常工作,升级至 0.0.4 无需同步升级 HAMi Enterprise。以下为默认应用 1.0.5 的既有配套要求,本次没有提高版本下限。
| 功能或使用场景 | 最低可用 HAMi Enterprise 版本 | 本版配套要求与升级结论 |
|---|---|---|
| PPU 基础调度、显存与算力切分,以及授权下发和续期;使用旧格式 UUID 授权或型号授权 | v2.9.0-rc2 | 沿用能够识别现有授权并发布有效 hami.io/alibaba-license 的调度器,无需因本次 Chart 升级更换授权或升级 Enterprise。 |
使用 deviceInstances 格式的实例授权 | v2.10.0-r0 | 该格式的既有版本要求不变。原授权已正常生效时,可沿用现有 Enterprise 和授权。 |
监控 Service 新增标签不要求升级 Enterprise,也不自动建立 Prometheus 采集配置。采集端仍需配置匹配的 Service 发现规则。以上版本下限基于发布制品和接口实现核对,不代表已完成各配套版本的 PPU 实机验证。
版本变化
Chart 变化
nameOverride和fullnameOverride的默认值均由空字符串改为ppu-device-plugin。未显式覆盖时,插件、监控、内置 ConfigMap、ServiceAccount 和 RBAC 资源随之改名;app.kubernetes.io/name标签及相关选择器也改为ppu-device-plugin。已有资源的名称和选择器不会自动迁移到新名称。- 监控 Service 新增
app: ppu-vgpu-monitor和component: vgpu-monitor标签,供按这些标签发现 Service 的采集配置匹配。新增标签位于 Service 元数据,不是 Pod 标签或 Service 选择器。端口名仍为metrics,默认 Service 端口与 NodePort 仍为31992,目标容器端口仍为9394;本次没有改变指标内容或监听端口,也没有新增 ServiceMonitor。
两版均使用各自默认 values 时,主要名称变化如下:
| 对象或配置 | Chart 0.0.3 | Chart 0.0.4 |
|---|---|---|
| 插件 DaemonSet | ppu-vgpu-device-plugin | ppu-device-plugin |
| 监控 DaemonSet 和 Service | ppu-vgpu-device-plugin-monitor | ppu-device-plugin-monitor |
| 内置 ConfigMap | ppu-vgpu-device-plugin-config | ppu-device-plugin-config |
| 插件 ServiceAccount、ClusterRole 和 ClusterRoleBinding | ppu-vgpu-device-plugin | ppu-device-plugin |
| 监控 ServiceAccount、ClusterRole 和 ClusterRoleBinding | ppu-vgpu-device-plugin-monitor | ppu-device-plugin-monitor |
app.kubernetes.io/name 标签及选择器值 | ppu-vgpu-device-plugin | ppu-device-plugin |
fullnameOverride 决定资源名称,优先于 nameOverride;nameOverride 仍独立影响 app.kubernetes.io/name。对采用上一版默认命名的部署,仅固定其中一个值不能同时保留资源名称和选择器。
升级说明
保留现有名称进行升级
推荐已有部署保留原资源名称和选择器。若 Chart 0.0.3 使用默认命名,在已有升级 values 中加入以下配置,并保留原 Helm release 名称和命名空间:
nameOverride: ppu-vgpu-device-plugin
fullnameOverride: ppu-vgpu-device-plugin
这组配置在 Chart 0.0.4 中保留上一版的资源名称、DaemonSet 选择器、监控 Service 名称及端口,同时获得新增的 Service 标签。若上一版使用自定义命名,应填写现场实际使用的名称:nameOverride 对应现有 app.kubernetes.io/name,fullnameOverride 对应现有完整资源名前缀,不要直接套用默认示例。
升级前比较新旧渲染清单,确认两个 DaemonSet 的名称与 spec.selector.matchLabels、Service 名称、ConfigMap 引用和 ServiceAccount 引用保持一致。不要只将 fullnameOverride 设为旧名称而保留新的默认 nameOverride:这会让同名 DaemonSet 的选择器发生变化,无法原地更新。Kubernetes 的 DaemonSet 选择器在创建后不可修改。
采用新默认名称的部署需按资源重建和监控切换安排维护,而非按同名资源更新处理。迁移时须同步调整引用旧 Service DNS、ConfigMap、ServiceAccount 或标签的外部配置,避免新旧插件同时管理相同节点。默认监控 NodePort 为 31992;旧 Service 尚占用该端口时,新名称的 Service 不能再申请同一端口,须先安排端口释放或改用未占用端口。参见 Kubernetes 的 NodePort 端口分配约束。
核对监控发现与升级结果
- 采集规则若按 Service 标签发现目标,可匹配
app=ppu-vgpu-monitor和component=vgpu-monitor,端口选择仍使用metrics。若配置的是 Pod 标签选择器,不能将本次新增的 Service 标签直接用作 Pod 匹配条件。 - 采集规则若依赖固定 Service 名称或
app.kubernetes.io/name,按最终采用的命名方案保留或更新规则。检查 Service 是否具有新增标签、Endpoints 或 EndpointSlice 是否指向监控 Pod,以及采集端目标是否正常;仅看到 Service 标签不能证明已完成采集。 - 默认应用版本没有变化,无需为了本次 Chart 升级替换运行库、迁移授权文件或重建全部业务 Pod。仍需检查插件和监控 DaemonSet 的滚动更新、节点资源上报及已有监控目标。本次 Chart 元数据更新可能触发 Pod 滚动更新,不等同于应用升级。
- 保留现有
image.repository、image.tag、资源名和设备切分配置;自定义镜像仍由原覆盖配置决定。本次不引入新的拓扑评分开关,也不要求修改现有调度策略。
查看Chart 与 appVersion 对应关系或软件中心。
Values 说明
以下参数说明取自 Chart 0.0.4 发布包随附的 README,保留原文。默认配置以该版本的 values.yaml 为准。
展开参数表
| Key | Type | Default | Description |
|---|---|---|---|
| commonAnnotations | object | {} | |
| commonLabels | object | {} | |
| config.create | bool | true | |
| config.data.alibaba.defaultCores | int | 0 | |
| config.data.alibaba.defaultGPUNum | int | 1 | |
| config.data.alibaba.defaultMemory | int | 0 | |
| config.data.alibaba.deviceCoreScaling | float | 1 | |
| config.data.alibaba.deviceMemoryScaling | float | 1 | |
| config.data.alibaba.deviceSplitCount | int | 10 | |
| config.data.alibaba.gpuCorePolicy | string | "default" | |
| config.data.alibaba.memoryFactor | int | 1 | |
| config.data.alibaba.overwriteEnv | bool | false | |
| config.data.alibaba.resourceCoreName | string | "alibaba.com/gpu-core" | |
| config.data.alibaba.resourceCountName | string | "alibaba.com/ppu" | |
| config.data.alibaba.resourceMemoryName | string | "alibaba.com/ppu-memory" | |
| config.data.alibaba.resourceMemoryPercentageName | string | "alibaba.com/ppu-memory-percentage" | |
| config.data.alibaba.runtimeClassName | string | "" | |
| config.existingConfigMapName | string | "" | |
| fullnameOverride | string | "ppu-device-plugin" | |
| image.pullPolicy | string | "IfNotPresent" | |
| image.pullSecrets | list | [] | |
| image.repository | string | "ghcr.io/dynamia-ai/ppu-device-plugin" | |
| image.tag | string | "" | |
| monitor.enabled | bool | true | |
| monitor.resources | object | {} | |
| monitor.service.enabled | bool | true | |
| monitor.service.nodePort | int | 31992 | |
| monitor.service.port | int | 31992 | |
| monitor.service.type | string | "NodePort" | |
| nameOverride | string | "ppu-device-plugin" | |
| namespaceOverride | string | "hami-system" | |
| nodeSelector.alibabappu | string | "on" | |
| plugin.enabled | bool | true | |
| plugin.resources.limits.cpu | string | "500m" | |
| plugin.resources.limits.memory | string | "512Mi" | |
| plugin.resources.requests.cpu | string | "100m" | |
| plugin.resources.requests.memory | string | "128Mi" | |
| priorityClassName | string | "system-node-critical" | |
| tolerations[0].key | string | "CriticalAddonsOnly" | |
| tolerations[0].operator | string | "Exists" | |
| tolerations[1].effect | string | "NoSchedule" | |
| tolerations[1].operator | string | "Exists" |