从 Device Plugin 到 DRA:GPU 调度范式升级与 HAMi-DRA 实践回顾
刚刚过去的 KCD Beijing 2026,是近年来规模最大的一次 Kubernetes 社区大会之一。
超过 1000 人报名参与,刷新历届 KCD 北京记录。
HAMi 社区不仅受邀进行了技术分享,也在现场设立了展台,与来自云原生与 AI 基础设施领域的开发者、企业用户进行了深入交流。
本次分享主题为:
从 Device Plugin 到 DRA:GPU 调度范式升级与 HAMi-DRA 实践
本文结合现场分享内容与 PPT,做一次更完整的技术回顾。附幻灯片下载:GitHub - HAMi-DRA KCD Beijing 2026。
HAMi 社区在现场
本次分享由两位 HAMi 社区核心贡献者完成:
- 王纪飞(「Dynamia 密瓜智能」,HAMi Approver,HAMi-DRA 主要贡献者)
- James Deng(第四范式,HAMi Reviewer)
他们长期专注于:
- GPU 调度与虚拟化
- Kubernetes 资源模型
- 异构算力管理
同时,HAMi 社区在现场设有展台,与参会者围绕以下问题进行了大量交流:
- Kubernetes 是否真的适合 AI workload?
- GPU 是否应该成为"调度资源",而不是"设备"?
- 如何在不破坏生态的情况下引入 DRA?
现场回顾






GPU 调度范式正在发生变化
这次分享的核心,其实不是 DRA 本身,而是一个更大的转变:
GPU 正在从"设备"变成"资源对象"。
1. Device Plugin 的天花板
传统模型的问题,本质上在于表达能力:
- 只能描述"数量"(
nvidia.com/gpu: 1) - 无法表达:
- 多维资源(显存 / core / slice)
- 多卡组合
- 拓扑(NUMA / NVLink)
👉 这直接导致:
- 调度逻辑外溢(extender / sidecar)
- 系统复杂度上升
- 并发能力受限
2. DRA:资源建模能力的跃迁
DRA 的核心优势是:
- 多维资源建模能力
- 完整设备生命周期管理
- 细粒度资源分配能力
关键变化:
资源申请从 Pod 内嵌字段 → 独立 ResourceClaim 对象
关键现实问题:DRA 太复杂了
PPT 里有一页非常关键,很多人会忽略:
👉 DRA 请求长这样
spec:
devices:
requests:
- exactly:
allocationMode: ExactCount
capacity:
requests:
memory: 4194304k
count: 1
同时还要写 CEL selector:
device.attributes["gpu.hami.io"].type == "hami-gpu"
对比 Device Plugin
resources:
limits:
nvidia.com/gpu: 1
👉 结论非常明确:
DRA 是能力升级,但 UX 明显退化。
HAMi-DRA 的关键突破:自动化
这是这次分享最有价值的部分之一:
👉 Webhook 自动生成 ResourceClaim
HAMi 的做法不是让用户"直接用 DRA",而是:
让用户继续用 Device Plugin,用系统自动转换成 DRA
工作机制
输入(用户):
nvidia.com/gpu: 1
nvidia.com/gpumemory: 4000
↓
Webhook 转换:
- 生成 ResourceClaim
- 构造 CEL selector
- 注入设备约束(UUID / GPU 类型)