Kueue
Kueue 是一组用于作业 排队的 API 和控制器。它是一个作业级别的管理器,决定何时 准入作业以启动(即可以创建 Pod),以及何时应停止作业(即应删除活动 Pod)。
阅读概述并观看与 Kueue 相关的演讲与演示以了解更多信息。
功能概述
-
集成: 内置对常见作业的支持,例如 BatchJob、Kubeflow 训练作业、RayJob、RayCluster、JobSet、 普通 Pod 和 Pod 组。
-
系统洞察: 内置 prometheus 指标 以帮助监控系统状态,以及用于 监控待处理工作负载 的按需可见性端点。
-
AdmissionChecks: 一种机制,用于让内部或外部组件影响工作负载是否可以被 准入。
-
高级自动扩缩容支持: 通过 admissionChecks 与 cluster-autoscaler 的 provisioningRequest 集成。
-
就绪 Pod 的全有或全无: 全有或全无调度 的基于超时的实现。
-
混合训练和推理:同时管理批处理工作负载和在线服务工作负载(例如 Deployments 或 StatefulSets)
-
多集群作业分发: 称为 MultiKueue,允许搜索容量并为主集群卸载负载。
-
Topology-Aware Scheduling: 允许通过感知数据中心拓扑的调度来优化 Pod 之间的通信吞吐量。
生产就绪状态
-
✔️ API 版本:v1beta2,遵循 Kubernetes 弃用策略。
-
✔️ 最新的 文档。
-
✔️ 测试覆盖率:
-
✔️ 大规模套件 testgrid.
-
✔️ 通过 性能测试 进行可扩展性验证.
-
✔️ 通过 指标 进行监控.
-
✔️ 安全性:基于 RBAC 的访问控制.
-
✔️ 稳定的 发布 周期(2-3 个月).
-
✔️ 生产环境中的 采用者.
基于社区反馈,我们持续简化并演进 API,以应对新的使用场景。
安装
官方支持并已在 Kubernetes 1.34 或更高版本上测试。
要在您的集群中安装 Kueue 的最新版本,请运行以下命令:
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.19.0/manifests.yaml
控制器运行在 kueue-system 命名空间中。
阅读安装指南以了解更多信息。
用法
通过运行示例可以设置一个最小配置:
kubectl apply -f examples/admin/single-clusterqueue-setup.yaml
然后你可以使用以下命令运行一个任务:
kubectl create -f examples/jobs/sample-job.yaml
了解更多关于:
路线图
2026 年主要优先事项的高层概述:
- 改进 MultiKueue 的用户体验 - 多集群作业调度,特别是:
- 改进 拓扑感知调度 的用户体验,特别是:
- 与 k8s 原生工作负载感知调度器 (WAS) 和拓扑感知调度的集成 #8871
- 支持并发工作负载准入 #8691
- 支持运行英雄工作负载 #8826
- 在查找抢占候选者时考虑抢占成本 #7990
- 推进与动态资源分配 (DRA) 集成的 Beta 版本进展 #8243
长期愿景目标:
- 部分抢占服务类工作负载 #3762
- 与工作流框架集成 #74
- 预算支持 #28
- 规格分配策略,例如 最小化成本 与 最小化借用 #312
- 为实现了检查点的工作负载提供协作式抢占支持 #477
- 针对两阶段准入的延迟抢占 #3758
- 在 Kueue 中支持结构化参数 (DRA) #2941
- 将 API 毕业至 v1 #3476
社区、讨论、贡献与支持
了解如何在 社区页面 和 贡献者指南 上与 Kubernetes 社区互动。
您可以通过以下方式联系本项目的维护者:
图形资源
行为准则
参与 Kubernetes 社区受 Kubernetes 行为准则 的约束。