此文档中的信息可能已过时
此文档的更新日期比原文晚,因此其中的信息可能已过时。如果能阅读英文,请查看英文版本以获取最新信息: Workload API
Kubernetes v1.35 [alpha](默认禁用)Workload API 资源允许你描述一个多 Pod 应用的调度需求和结构。 虽然工作负载控制器提供了运行时行为,但 Workload API 旨在为“真实”的工作负载(例如 Job 等)提供调度约束。
Workload API 资源属于 scheduling.k8s.io/v1alpha1
API 组
(在使用此 API 之前,你的集群必须启用该 API 组以及 GenericWorkload
特性门控)。
此资源作为一种结构化、机器可读的定义,用于描述多 Pod 应用的调度需求。
面向用户的工作负载(例如 Job)定义“运行什么”,
而 Workload 资源则决定一组 Pod 应该如何被调度,以及在其整个生命周期中如何管理其调度位置。
Workload 允许你定义一组 Pod,并为其应用调度策略。 Workload 由两个部分组成:Pod 分组列表和到某个控制器的引用。
podGroups 列表定义了工作负载中的不同组件。
例如,一个机器学习任务可能包含一个 driver 分组和一个 worker 分组。
podGroups 中的每一项必须包含:
name,可在 Pod 的
Workload 引用中使用。basic 或 gang)。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 的调度或管理。