Workload API

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

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

Workload API

特性状态: Kubernetes v1.35 (Alpha; (默认禁用))
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.

Workload API 资源允许你描述一个多 Pod 应用的调度需求和结构。 虽然工作负载控制器提供了运行时行为,但 Workload API 旨在为“真实”的工作负载(例如 Job 等)提供调度约束。

什么是 Workload?

Workload API 资源属于 scheduling.k8s.io/v1alpha1 API 组 (在使用此 API 之前,你的集群必须启用该 API 组以及 GenericWorkload 特性门控)。 此资源作为一种结构化、机器可读的定义,用于描述多 Pod 应用的调度需求。 面向用户的工作负载(例如 Job)定义“运行什么”, 而 Workload 资源则决定一组 Pod 应该如何被调度,以及在其整个生命周期中如何管理其调度位置。

API 结构

Workload 允许你定义一组 Pod,并为其应用调度策略。 Workload 由两个部分组成:Pod 分组列表和到某个控制器的引用。

Pod 分组

podGroups 列表定义了工作负载中的不同组件。 例如,一个机器学习任务可能包含一个 driver 分组和一个 worker 分组。

podGroups 中的每一项必须包含:

  1. 一个唯一的 name,可在 Pod 的 Workload 引用中使用。
  2. 一个调度策略basicgang)。
apiVersion: scheduling.k8s.io/v1alpha1
kind: Workload
metadata:
  name: training-job-workload
  namespace: some-ns
spec:
  controllerRef:
    apiGroup: batch
    kind: Job
    name: training-job
  podGroups:
  - name: workers
    policy:
      gang:
        # 只有当可以同时运行 4 个 Pod 时,此 gang 才可调度
        minCount: 4

引用工作负载控制对象

controllerRef 字段用于将 Workload 关联回定义此应用的具体高层对象, 例如 Job 或定制 CRD。 这对于可观测性和工具链非常有用。此数据不会用于 Workload 的调度或管理。

接下来

最后修改 April 20, 2026 at 10:56 AM PST: [zh] Add workload-api/_index.md (6d7f07b9ed)