Dynamia ppu-vgpu-device-plugin Chart 0.0.3
发布时间:2026-09-22
| 版本 | 上一版 | 本版 |
|---|---|---|
| Chart | 0.0.2 | 0.0.3 |
| appVersion | 1.0.4 | 1.0.5 |
本版将每张物理 PPU 的默认虚拟设备数从 2 改为 10,并统一通过设备配置文件读取资源名和切分配置。插件与监控的默认镜像均更新为 ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.5,内置 PPU-HAMi-core 与应用 1.0.4 相同。
HAMi Enterprise 兼容性
如果 Chart 0.0.2 下的调度、资源切分及授权已正常工作,升级至 0.0.3 无需同步升级 HAMi Enterprise。本次没有改变调度与授权协议;调整切分数前,仍需确认现有工作负载、配额和容量规划是否允许增加共享份数。
| 功能或使用场景 | 最低可用 HAMi Enterprise 版本 | 本版配套要求与升级结论 |
|---|---|---|
| PPU 基础调度、显存与算力切分,以及授权下发和续期;使用旧格式 UUID 授权或型号授权 | v2.9.0-rc2 | 已能发布有效 hami.io/alibaba-license 的调度器可继续使用。默认切分数变化不要求升级 Enterprise。 |
使用 deviceInstances 格式的实例授权 | v2.10.0-r0 | 原授权在应用 1.0.4 下已正常生效时,可沿用现有 Enterprise 和授权。 |
以上版本下限基于发布制品和接口实现核对,不代表已完成各配套版本的 PPU 实机验证。
版本变化
Chart 变化
config.data.alibaba.deviceSplitCount默认值由2改为10。使用本 Chart 创建的 ConfigMap 且未覆盖该值时,每张物理 PPU 按10个虚拟设备上报。该值控制可分配的共享份数,不增加物理显存或算力;显存和算力缩放默认值仍为1.0。- 插件 DaemonSet 删除
--resource-name、--device-split-count和--device-memory-scaling三个启动参数,仅保留--config-file=/device-config.yaml。资源名、切分数和缩放系数由挂载的配置文件提供。
应用变化
应用 1.0.5 移除原有 PPU 扩展命令行参数及其环境变量入口。手工部署清单、Helm 后处理脚本或镜像启动脚本若仍附加这些参数,须同步修改;继续传入已删除的参数会导致命令行解析失败。
| 已移除的参数 | 本版配置入口 |
|---|---|
--resource-name | alibaba.resourceCountName |
--device-split-count | alibaba.deviceSplitCount |
--device-memory-scaling | alibaba.deviceMemoryScaling |
--device-cores-scaling | alibaba.deviceCoreScaling |
--disable-core-limit | alibaba.disableCoreLimit |
--node-name | 通过 NODE_NAME 环境变量传入节点名;Chart 已使用 Downward API 设置 |
表中的 alibaba.* 是实际设备配置文件的键。由 Chart 创建配置时,在 values 中使用 config.data.alibaba.*。旧的 DEVICE_SPLIT_COUNT、DEVICE_MEMORY_SCALING、DEVICE_CORES_SCALING、DISABLE_CORE_LIMIT 和 NodeName 环境变量不再作为这些命令行参数的入口。原有配置文件已经是资源与切分配置的读取来源,本次移除重复入口,不改变授权下发、续期或运行库行为。
升级说明
明确保留或调整切分数
希望继续保持每卡 2 份的部署,应在升级 values 中显式固定该值:
config:
data:
alibaba:
deviceSplitCount: 2
希望采用每卡 10 份的部署,应显式设为 10,并检查最终渲染的 ConfigMap。升级时保留的旧 values 可能继续覆盖新默认值,不能仅凭 Chart 版本判断实际份数。自定义切分数、资源名及缩放系数应按现场配置保留。
使用 config.create: false 和 config.existingConfigMapName 的部署,应修改外部 ConfigMap 中的 alibaba.deviceSplitCount 等字段;仅修改 config.data 不会更新该外部对象。插件须重新读取配置后才能按新份数注册,外部 ConfigMap 的修改也不会触发本 Chart 的配置校验和滚动更新,应安排重启插件并核对结果。
切分数由设备插件负责上报。调度器使用节点上报的容量;仅修改 Enterprise 中的调度默认值,不能替代插件配置修改。两端的资源名须保持一致。若减少份数,应先确认已有分配不超过新容量,再安排维护。
同步镜像与部署清单
- 保留原 Helm release、命名空间、资源名称和节点选择。插件与监控共用
image.repository、image.tag;image.tag为空时采用v1.0.5。固定旧 tag 的部署须更新镜像覆盖值,才能获得应用变更。 - 清理自定义清单和启动脚本中的已删除参数,并将需要保留的设置写入设备配置文件。不要仅把 Chart
0.0.2的镜像替换为v1.0.5:旧 Chart 仍会传入本版已删除的三个参数,应一并升级 Chart 或修正清单。 - 检查插件和监控 DaemonSet 的实际镜像、插件启动日志、节点 PPU 注册信息以及
alibaba.com/ppu的容量。对于所有物理 PPU 均健康、可注册且使用同一配置的节点,虚拟设备总数应与物理卡数乘以切分数一致;自定义资源名时检查对应资源。 - 本次运行库和按容器授权格式没有变化,无需为应用升级统一迁移授权文件或重建全部业务 Pod。若同时调整切分数,应另外验证新建工作负载的调度、分配和资源限制。
查看Chart 与 appVersion 对应关系或软件中心。
Values 说明
以下参数说明取自 Chart 0.0.3 发布包随附的 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 | "" | |
| 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 | "" | |
| 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" |