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

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

Workload API

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

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)