AI资讯

Kueue 成功管理 DRA 模式下的 GPU 配额

Kueue 通过 deviceClassMappings 将 DRA 设备申请转换为配额资源,成功管理了 DRA 模式下的 GPU 配额。本文详细介绍了环境准备、配置过程及测试结果。

AI云图智寻编辑部2026-08-04 14:42
阅读时间:约 4 分钟
Kueue 成功管理 DRA 模式下的 GPU 配额
Kueue 通过 deviceClassMappings 将 NVIDIA DRA 模式下的 GPU 设备申请转换为配额资源,成功实现了对 GPU 配额的管理。测试中,Kueue 能够准确处理 Job 的准入和配额分配。

环境准备与组件安装

首先创建 Kubernetes 集群,并使用 KubeClipper 1.6.0 版本部署单节点集群。接着通过 GPU Operator 安装 GPU 驱动和相关组件,关闭 DevicePlugin 以避免与后续安装的 DRA 驱动冲突。然后安装 Kueue 0.18.1 版本,最后接入 NVIDIA DRA Driver 25.12.0。整个环境搭建完成后,确认 GPU 和 DRA 驱动组件正常运行。
在集群中,可以看到设备类(DeviceClass)和资源切片(ResourceSlice),其中 gpu.nvidia.com 用于整卡调度。这些步骤确保了 Kueue 可以正确读取和管理 DRA 模式下的 GPU 资源。

DRA 模式下的 GPU 配额管理

为了使 Kueue 能够管理 DRA 模式下的 GPU 配额,需要进行一些配置调整。首先修改 Kueue 的 DRA 配置,将 deviceClassName: gpu.nvidia.com 映射到 nvidia.com/gpu 这个逻辑资源。然后创建一个队列,设置 GPU 配额为 1 张 T4 卡。接下来,通过 ResourceClaimTemplate 申请整卡 GPU,并提交一个由 Kueue 管理的 Job。Job 被准入后,从 Suspended 状态变为 Running,同时资源声明被分配。测试结果显示,Kueue 成功扣除了相应的 GPU 配额。
进一步测试中,提交第二个请求相同 GPU 配额的 Job 时,由于队列中仅有一张 GPU 配额,第二个 Job 保持在 Suspended 状态,无法运行。这验证了 Kueue 对 GPU 配额的有效管理。

注意事项与总结

在实际应用中,需要注意 DeviceClass 和配额资源并不是同一个东西。ResourceClaimTemplate 中定义的是 deviceClassName: gpu.nvidia.com,而 ClusterQueue 中使用的是 nvidia.com/gpu。两者通过 Kueue 配置中的 deviceClassMappings 关联起来。如果缺少这段映射,Workload 会被标记为 Inadmissible。此外,Pod 中引用的 resourceClaims 名称也需要与 ResourceClaimTemplate 中的一致。
总结来说,Kueue 并没有直接参与 GPU 分配,而是通过 deviceClassMappings 将 DRA 的设备申请转换为队列中的配额资源。这样既保留了 DRA 的设备模型,又使得 GPU 可以纳入 Kueue 的统一配额管理。NVIDIA DRA Driver 负责发布 GPU 作为 DeviceClass/ResourceSlice,kube-scheduler 则在 Pod 调度阶段完成实际的设备分配。