PodGroup 调度策略

PodGroup 调度策略

特性状态: Kubernetes v1.35 [alpha](默认禁用)

每个 PodGroup 都必须在其 spec.schedulingPolicy 字段中声明一个调度策略。 该策略决定了调度器如何处理组中的 Pod 集合。

策略类别

schedulingPolicy 字段支持两种策略类型:basicgang。 你必须指定其中一种。

Basic 策略

basic 策略指示调度器尽力评估所有 Pod。 与 gang 策略不同,使用 basic 策略的 PodGroup 无论其当前有多少 Pod 可调度, 都被认为是可行的。

使用 basic 策略的主要原因是将 Pod 组织成组,以提升可观测性和管理能力, 同时仍然在单个原子 PodGroup 调度周期 内对它们进行一起评估。

此策略可用于那些不需要同时启动但逻辑上属于同一组的群体, 或者为不涉及“全有或全无”的组约束提供扩展空间。

schedulingPolicy:
  basic: {}

Gang 策略

gang 策略强制执行“全有或全无”的调度机制。这对于紧密耦合的工作负载非常重要, 因为部分启动可能导致死锁或资源浪费。

此策略常用于 Job 或其他需要所有 Worker 同时运行才能推进的批处理任务。

gang 策略需要一个 minCount 字段,该字段表示为了使该组可行, 必须同时调度的最小 Pod 数量:

schedulingPolicy:
  gang:
    # 组被允许调度所需的最小 Pod 数量
    minCount: 4

通过 PodGroupTemplates 设置策略

使用 Workload API 时, 你需要在 PodGroupTemplates 中定义调度策略。 工作负载控制器会将模板中的策略复制到它创建的每个 PodGroup 中, 从而使 PodGroup 成为自包含的。对工作负载模板的更改只会影响新创建的 PodGroup, 而不会影响已存在的 PodGroup。

对于独立 PodGroup(未通过工作负载创建),你可以直接在 PodGroup 本身上设置 spec.schedulingPolicy

接下来

最后修改 June 15, 2026 at 10:36 AM PST: [zh-cn]sync policies (3af179ae55)