用户
用户
MutatingWebhook
[集群控制层]
MutatingWebhook
[集群控制层]
Scheduler-Extender
[集群控制层]
Scheduler-Extender
[集群控制层]
Device Plugin
[节点代理层]
Device Plugin
[节点代理层]
HAMi-Core
[容器内隔离层]
HAMi-Core
[容器内隔离层]
物理 GPU
物理 GPU
节点启动：设备规格上报
写入 Node Annotation
hami.io/node-nvidia-register
（UUID / 显存 / 算力 / 型号）
用户提交 Pod
提交 Pod
(nvidia.com/gpu + gpumem)
改写 schedulerName
（强制使用 hami-scheduler）
交由 hami-scheduler 调度
调度决策
读取 Node Annotation
选定目标节点与 GPU UUID
写入 Pod Annotation
hami.io/vgpu-devices-allocated
（UUID + 显存配额 + 算力配额）
设备分配与容器启动
读取 Pod Annotation
获取 GPU UUID 与配额
挂载 /dev/nvidia*
Allocate 响应中注入：
• hostPath 挂载 libvgpu.so
• hostPath 挂载 ld.so.preload → /etc/ld.so.preload
• CUDA_DEVICE_MEMORY_LIMIT_<index>
• CUDA_DEVICE_SM_LIMIT
CUDA API 调用
（超出配额返回 OOM）