编组调度(Gang Scheduling)
特性状态:
Kubernetes v1.35 [alpha](默认禁用)编组调度(Gang Scheduling)确保一组 Pod 以 全有或全无(all-or-nothing) 的方式进行调度。 如果集群无法容纳整个组(或某确定的最小 Pod 数量),则不会将任何 Pod 绑定到节点上。
此特性依赖于 Workload API。确保在集群中启用
GenericWorkload
特性门控以及 scheduling.k8s.io/v1alpha1
API 组。
工作原理
当 GangScheduling 插件被启用时,调度器修改
Workload 内属于某个 gang
Pod 组策略的 Pod 的生命周期。
此过程会针对每个 Pod 组及其副本键独立执行,具体步骤如下:
-
调度器在
PreEnqueue阶段暂存 Pod,直到满足以下条件:- 被引用的 Workload 对象已创建。
- 被引用的 Pod 组已存在于 Workload 中。
- 为特定 Pod 组创建的 Pod 数量不少于
minCount。
只有满足上述所有条件之后,Pod 才会进入活动的调度队列。
- 当达到额定数量(quorum)后,调度器尝试为组中的所有 Pod 寻找可调度的节点。
在此过程中,所有已分配的 Pod 都会在
WaitOnPermit阶段等待。 需要注意的是,此特性目前处于 Alpha 阶段,调度决策仍然基于逐个 Pod 的调度方式, 而不是在单个调度周期内完成。
- 如果调度器为至少
minCount个 Pod 找到了有效的调度位置, 则允许这些 Pod 全部绑定到所分配的节点上。 如果在固定的 5 分钟超时时间内无法为整个 Pod 组找到调度位置,则不会调度任何 Pod。 相反,这些 Pod 会被移入不可调度的队列,等待集群资源释放,同时允许其他工作负载被调度。
接下来
- 了解 Workload API。
- 查看如何在 Pod 中引用 Workload。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 December 18, 2025 at 11:15 AM PST: [zh] Add gang-scheduling.md and its feature gate (637c418491)