
如何从零跑通 HAMi GPU 共享调度K8s 安装配置实战指南【免费下载链接】HAMiHeterogeneous GPU Sharing on Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ha/HAMiHAMi异构 AI 计算虚拟化中间件解决 K8s 集群 GPU 无法共享、整卡占用的浪费问题。本文带你把 HAMi GPU 共享调度跑起来环境自检、最小安装、运行时配置、验证闭环。环境自检清单装之前先排雷HAMi 的 GPU 虚拟化依赖容器运行时把设备文件注入容器所以驱动和运行时工具链是地基。下面这张表我一般会先逐条确认全部通过再往下走依赖项最低版本检查命令预期输出NVIDIA 驱动 440nvidia-smiDriver Version 不低于 440nvidia-container-runtime 2.0nvidia-ctk --version版本号 2.x 且可正常执行Kubernetes 1.23kubectl versionServer Version v1.23HelmK8s 的包管理器 3.0helm versionv3.xglibc 2.17ldd --version2.17 及以上Linux 内核 3.10uname -r3.10 及以上任一不满足后续步骤全部无效。3 条命令跑通最小安装先加 HAMi 的 chart 仓库chart 就是一套打包好的部署清单helm repo add hami-charts https://project-hami.github.io/HAMi/这一步只是登记仓库地址不会改动集群任何内容。接着一条命令装完所有组件helm install hami hami-charts/hami -n kube-systemHAMi 会同时拉起两块核心组件接管调度的 vGPU 调度器通过 webhook 拦截 Pod 创建请求来改写设备分配以及部署在每个 GPU 节点上的 Device PluginK8s 用来把硬件资源暴露给容器的插件机制负责上报 GPU 容量。最后验证kubectl get pods -n kube-system看到hami-scheduler与hami-device-plugin均为Running安装就算成功。节点侧运行时配置Docker 为例HAMi 的虚拟化需要容器运行时把 GPU 设备注入容器所以每个 GPU 节点都要先装 NVIDIA Container Toolkitecho deb https://nvidia.github.io/libnvidia-container/stable $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit然后改 Docker 的 daemon.json把默认运行时切到 nvidia让容器里的进程默认就能摸到 GPU改完systemctl restart docker生效{ default-runtime: nvidia, runtimes: { nvidia: { path: /usr/bin/nvidia-container-runtime, runtimeArgs: [] } } }如果你的节点跑的是 containerd用nvidia-ctk runtime configure --runtime containerd生成配置并重启 containerd 即可效果相同不再展开。打标节点 → 提交测试 Pod → 看调度结果闭环验证分三步。先给节点打标让调度器识别出 GPU 节点——这里有个小坑漏了这一步 Pod 会一直 Pending 且不报明确原因kubectl label nodes 节点名 gpuon再提交一个只占单卡 50% 显存的测试 Podgpumem-percentage就是共享的精髓两个 Pod 可以塞进同一张卡apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: ubuntu-container image: ubuntu:22.04 command: [bash, -c, sleep 86400] resources: limits: nvidia.com/gpu: 1 nvidia.com/gpumem-percentage: 50 nvidia.com/gpucores: 30kubectl apply -f gpu-pod.yaml kubectl describe pod gpu-podPod 进入 Running 后看下面这张对比图理解调度结果没有 HAMi 时两个用户各占 2 张整卡、利用率 50%有了 HAMi两个负载被打包进 2 张卡且互相隔离利用率直接拉满。日常运维升级回滚卸载场景操作升级刷新仓库后用 upgrade 覆盖部署Pod 滚动重建helm repo update helm upgrade hami hami-charts/hami -n kube-system回滚一条命令退回上一个 release 版本helm rollback hami -n kube-system卸载清掉调度器、Device Plugin 与监控资源helm uninstall hami -n kube-systemHAMi GPU 共享调度到此已跑通更多共享策略显存/算力配比、MIG、多厂商异构设备的配置项见官方仓库 README 与 docs 目录。【免费下载链接】HAMiHeterogeneous GPU Sharing on Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考