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,直到满足以下条件:
minCount。只有满足上述所有条件之后,Pod 才会进入活动的调度队列。
WaitOnPermit 阶段等待。
需要注意的是,此特性目前处于 Alpha 阶段,调度决策仍然基于逐个 Pod 的调度方式,
而不是在单个调度周期内完成。minCount 个 Pod 找到了有效的调度位置,
则允许这些 Pod 全部绑定到所分配的节点上。
如果在固定的 5 分钟超时时间内无法为整个 Pod 组找到调度位置,则不会调度任何 Pod。
相反,这些 Pod 会被移入不可调度的队列,等待集群资源释放,同时允许其他工作负载被调度。