PodGroup 调度策略

此文档中的信息可能已过时

此文档的更新日期比原文晚,因此其中的信息可能已过时。如果能阅读英文,请查看英文版本以获取最新信息: PodGroup Scheduling Policies

PodGroup 调度策略

特性状态: Beta since Kubernetes v1.37; (默认禁用)
More information about this feature

To use this feature, you (or a cluster administrator) will need to enable the GenericWorkload feature gate for all relevant components in your cluster.

See Enable Or Disable Feature Gates for more information.

每个 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)