fix(device): hand out copies from PodManager instead of stored pointers (#2472)
GetScheduledPods copied the map but returned the stored *PodInfo pointers, and AddPod writes to those structs in place at pods.go:72. The metrics collector ranges over Devices after the read lock is released while the informer keeps calling AddPod, so go test –race reports it on master.
Copy the entries too, reusing the PodInfo.DeepCopy that ListPodsInfo already uses. GetPod gets the same treatment. Mirrors #2333.
Fixes #2471
Signed-off-by: Lakshya77089 lakshyasharma7708@gmail.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
English version | 中文版 | 日本語版
HAMi
Kubernetes GPU 虚拟化与异构加速器调度,面向 AI 基础设施。
HAMi 全称异构 AI 计算虚拟化中间件(Heterogeneous AI Computing Virtualization Middleware)。前身为
k8s-vGPU-scheduler,HAMi 帮助平台团队在 Kubernetes 工作负载间共享昂贵的 GPU 及其他 AI 加速器,隔离设备显存和算力,并通过设备感知的调度策略调度 Pod,无需修改应用代码。HAMi 是 CNCF Incubating 和 CNCF Landscape 项目,同时也被列入 CNAI Landscape。
为什么选择 HAMi?
AI 基础设施团队常常面临同样的 Kubernetes 加速器问题:整张 GPU 被分配给小型任务,团队争抢稀缺设备,不同加速器厂商暴露不同的操作模型,调度器缺乏足够的设备上下文来高效放置工作负载。
HAMi 提供了一个 Kubernetes 原生层:
使用场景
工作原理
HAMi 由 Mutating Webhook、调度器扩展器、设备插件和设备特定的容器内虚拟化组件组成。
设备虚拟化
HAMi 让工作负载只申请所需的加速器资源。例如,以下 Pod 请求一张具有 3 GiB 显存的物理 NVIDIA GPU:
工作负载在容器内看到已分配的设备资源,HAMi 负责协调调度、分配和隔离。
支持的设备
HAMi 支持多种异构加速器后端,包括 GPU、NPU、DCU、MLU、GCU、XPU 等。设备能力因厂商、型号、驱动和硬件代次而异。
请参阅 HAMi 支持的设备页面获取最新的支持矩阵。
快速开始
前置条件
使用 NVIDIA 设备插件路径,需准备:
nvidia-docker版本 > 2.0使用 Helm 安装
标记 GPU 节点以便 HAMi 管理:
添加 HAMi Helm 仓库:
安装 HAMi:
验证调度器和设备插件是否正在运行:
当
hami-device-plugin和hami-scheduler都为Running状态时,提交示例工作负载:完整的安装指南和配置选项,请参阅 HAMi 文档。
调度策略
HAMi 支持多种 AI 工作负载调度模式:
HAMi 兼容默认 Kubernetes 调度路径,也可与 Volcano 配合用于批量 AI 工作负载。请参阅 HAMi 网站获取当前的调度器集成指南。
可观测性与 WebUI
HAMi 暴露用于监控集群加速器使用情况的指标。安装后,指标可通过调度器监控端点获取:
默认监控端口为
31993。可通过 Helm 参数修改,如--set scheduler.service.monitorPort=<port>。HAMi 还提供:
生态系统集成
路线图、治理与贡献
HAMi 由维护者和贡献者共同治理。治理规则详见 HAMi 社区仓库。
如需贡献代码、文档、测试或设备后端改进,请阅读 CONTRIBUTING.md。
社区
HAMi 社区欢迎用户、贡献者、硬件厂商和构建 Kubernetes AI 基础设施的平台团队。
演讲和参考资料
许可证
HAMi 采用 Apache License 2.0 许可证。详见 LICENSE。
Copyright Contributors to HAMi, established as HAMi a Series of LF Projects, LLC.