配置 Dynamic MIG

HAMi dynamic MIG 使用 nvidia-mig-parted 为 HAMi 工作负载创建 NVIDIA MIG 实例,同时保留 HAMi 资源 API。仅当已安装的 Alauda Build of HAMi 版本支持 dynamic MIG,且 NVIDIA GPU 基础环境已为 MIG 做好准备时,才使用此高级路径。

Dynamic MIG 是一种 HAMi 分配模式。NVIDIA GPU 硬件支持、驱动程序要求以及直接 MIG 行为仍见于 NVIDIA GPU MIG 文档

WARNING

更改 MIG 几何配置可能会重置 GPU。在启用或更改模式之前,请先驱逐或停止工作负载,以及任何会阻止 GPU 重置的进程。NVIDIA 指标组件的协调请参阅 NVIDIA GPU 产品文档。

开始之前

  • 安装启用了 NVIDIA 后端的 Alauda Build of HAMi
  • 确认目标 NVIDIA GPU 型号和驱动程序支持 MIG。
  • 确认没有其他 device plugin 或 DRA driver 暴露同一物理 GPU。
  • 记录当前 HAMi 节点配置。直接修改 ConfigMap 可能会在后续 cluster-plugin 更新时被覆盖。

在更改之前,请先备份当前配置:

kubectl -n kube-system get configmap hami-device-plugin \
  -o yaml > hami-device-plugin-before-mig.yaml

在节点上启用 dynamic MIG

编辑 hami-device-plugin ConfigMap 中的 config.json 数据,并为每个 dynamic MIG 节点添加一条条目:

kubectl -n kube-system edit configmap hami-device-plugin
{
  "nodeconfig": [
    {
      "name": "<mig-node-name>",
      "operatingmode": "mig",
      "filterdevices": {
        "uuid": [],
        "index": []
      }
    }
  ]
}

请保留其他节点的条目。更新配置后,在计划维护窗口期间重启 HAMi scheduler 和 device plugin:

kubectl -n kube-system rollout restart deployment hami-scheduler
kubectl -n kube-system rollout restart daemonset hami-device-plugin

如果部署使用了带 release 前缀的资源名称,请使用 kubectl get deployment,daemonset -n kube-system | grep hami 获取实际名称。

请求 dynamic MIG 设备

HAMi 对 HAMi-Core 和 dynamic MIG 工作负载使用相同的 nvidia.com/gpuallocnvidia.com/gpumem 资源。当工作负载必须运行在 dynamic MIG 节点上时,请使用 mode 注解:

apiVersion: v1
kind: Pod
metadata:
  name: hami-dynamic-mig
  annotations:
    nvidia.com/vgpu-mode: "mig"
spec:
  containers:
    - name: workload
      image: <your-gpu-image>
      resources:
        limits:
          nvidia.com/gpualloc: 1
          nvidia.com/gpumem: 8000

HAMi 会选择第一个能够满足内存请求的受支持 MIG 几何配置。对于此 HAMi 路径,节点不会暴露诸如 nvidia.com/mig-1g.10gb 之类的静态资源。

验证模式

检查工作负载、device-plugin 日志以及 HAMi 资源视图:

kubectl get pod hami-dynamic-mig -o wide
kubectl -n kube-system logs daemonset/hami-device-plugin --tail=200
kubectl get node <mig-node-name> -o jsonpath='{.status.allocatable}'

工作负载必须变为 Running,device-plugin 日志中不得包含 nvidia-mig-parted failed 错误,并且工作负载必须继续请求标准的 HAMi NVIDIA 资源键。

运行限制

  • nvidia.com/gpualloc 不能超过工作负载可用的物理 GPU 数量。
  • 几何配置更改可能需要再次重置 GPU。
  • 对 chart 生成的 ConfigMap 进行直接编辑,可能会在升级期间被覆盖。每次 HAMi 升级前,请备份并重新验证节点配置。
  • 仅使用已安装 HAMi 包和目标 GPU 型号支持的几何配置。有关完整的上游几何格式,请参阅 Project-HAMi dynamic MIG support

后续步骤