版本:下一个
生态集成
HAMi 并不会取代你现有的 Kubernetes 调度器,而是在它基础上做扩展。HAMi 负责的是 GPU 的虚拟化、共享和运行时隔离,并把自己接进更大的 Kubernetes 调度生态里,这样你就能把 GPU 共享 和 批调度、作业排队、混部 这些能力组合起来用。
这一页讲的是 HAMi 怎样和默认调度器,还有四个生态伙伴协同工作,分别是 Volcano、Kueue、Koordinator,以及 NVIDIA 的 KAI Scheduler。
HAMi 的集成方式
HAMi 对外暴露三个角色,伙伴可以按需组合使用:
- hami-scheduler 作为
kube-scheduler的扩展器(extender)注册进来,负责 vGPU 的分配决策,比如显存切分、算力限额、binpack 或 spread 策略。 - hami-device-plugin 负责向
kubelet注册 vGPU 资源,并在 Pod 创建时完成设备挂载。 - HAMi-core(
libvgpu.so) 在容器里拦截 CUDA、DCU 之类的调用,在运行时强制实现硬隔离和资源限额。
一个伙伴到底走哪条路,取决于它自己负责哪一层:要么走调度 器扩展这条路,要么直接复用节点上的 HAMi-core 来做隔离。
集成伙伴
原生(默认)
开箱即用的时候,kube-scheduler 会把 GPU 的过滤和打分交给 hami-scheduler,共享和隔离则由 hami-device-plugin 和 HAMi-core 完成。这套组合覆盖的是单任务、彼此独立的调度场景,正好适合在线推理,不需要再装额外的调度器。
Volcano:成团与批调度
Volcano 带来了成团调度(一个作业里的所有 Pod 要么一起起来,要么都不起),还有多级队列优先级和公平份额,这些正是 AI 训练 需要的批处理能力。HAMi 通过 volcano-vgpu-device-plugin 接入 Volcano,Volcano 负责调度 HAMi 管理的 vGPU,而 GPU 隔离仍然由 HAMi-core 来做。
- 安装:使用 Volcano vGPU
- 指南与示例:Volcano vGPU(NVIDIA GPU)