在 HAMi 中使用 Kueue
本指南将帮助你使用 Kueue 来管理 HAMi vGPU 资源,包括启用 Deployment 支持、配置 ResourceTransformation,以及创建请求 vGPU 资源的工作负载。
前置条件
在开始之前,请确保:
- 集群中已安装 HAMi
- 集群中已安装 Kueue
快速开始
安装 Kueue
如果尚未安装 Kueue,可以使用以下命令进行安装:
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.15.0/manifests.yaml
安装完成后,Kueue 控制器将运行在 kueue-system 命名空间中。
在 Kueue 中启用 Deployment 支持
Kueue 支持管理 Deployment,但你需要在 Kueue 配置中启用 deployment 集成。
配置 Kueue
编辑 Kueue manager 的配置以启用 Deployment 支持:
kubectl edit configmap kueue-manager-config -n kueue-system
添加如下配置:
apiVersion: config.kueue.x-k8s.io/v1beta2
kind: Configuration
integrations:
frameworks:
- "deployment"
- "pod"
更新配置后,重启 kueue-manager:
kubectl rollout restart deployment kueue-manager -n kueue-system
配置 ResourceTransformation
ResourceTransformation 允许 Kueue 将一种形式的资源请求转换为另一种形式。
对于 HAMi vGPU 资源,这使得 Kueue 可以使用聚合指标
(如 nvidia.com/total-gpucores 和 nvidia.com/total-gpumem)来跟踪 GPU 资源,
而不是单独的 nvidia.com/gpu 请求。
编辑 kueue-manager 配置以添加 ResourceTransformation:
kubectl edit configmap kueue-manager-config -n kueue-system
将 ResourceTransformation 配置添加到同一个 Configuration 对象中:
apiVersion: config.kueue.x-k8s.io/v1beta2
kind: Configuration
integrations:
frameworks:
- "deployment"
- "pod"
resources:
transformations:
- input: nvidia.com/gpucores
strategy: Replace
multiplyBy: nvidia.com/gpu
outputs:
nvidia.com/total-gpucores: "1"
- input: nvidia.com/gpumem
strategy: Replace
multiplyBy: nvidia.com/gpu
outputs:
nvidia.com/total-gpumem: "1"
更新配置后,重启 kueue-manager:
kubectl rollout restart deployment kueue-manager -n kueue-system