Kubernetes v1.35 [alpha](disabled by default)워크로드 API 리소스를 사용하여 멀티 파드 애플리케이션에 대한 스케줄링 요구 사항과 구조를 기술할 수 있다. 워크로드 컨트롤러가 워크로드에 대한 런타임 동작을 제공하는 반면, 워크로드 API는 잡(Job) 등과 같은 "실제" 워크로드에 대한 스케줄링 제약 조건을 제공하기 위한 것이다.
워크로드 API 리소스는 scheduling.k8s.io/v1alpha1
API 그룹에 속하며
(이 API를 사용하려면 클러스터에서 해당 API 그룹과 GenericWorkload
기능 게이트가
활성화되어 있어야 한다).
이 리소스는 멀티 파드 애플리케이션의 스케줄링 요구 사항을
구조화하고 기계가 읽을 수 있는 형태로 정의한다. 잡과
같은 사용자 대상 워크로드가 무엇을 실행할지 정의하는 반면, 워크로드 리소스는
파드 그룹이 어떻게 스케줄링되어야 하는지와 라이프사이클 전반에 걸쳐
배치가 어떻게 관리되어야 하는지를 결정한다.
워크로드를 사용하면 파드 그룹을 정의하고 스케줄링 정책을 적용할 수 있다. 파드 그룹 목록과 컨트롤러에 대한 참조, 두 부분으로 구성된다.
podGroups 목록은 워크로드의 개별 구성 요소를 정의한다.
예를 들어, 머신 러닝 잡에는 driver 그룹과 worker 그룹이 있을 수 있다.
podGroups의 각 항목에는 다음이 필요하다.
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개의 파드가 동시에 실행될 수 있는 경우에만 gang을 스케줄링할 수 있다
minCount: 4
controllerRef 필드는 잡이나 사용자 정의 CRD와 같이 애플리케이션을 정의하는 특정 상위 오브젝트에 워크로드를 연결한다. 이 필드는 가시성(observability)과 도구 연동에 유용하다.
이 데이터는 워크로드를 스케줄링하거나 관리하는 데 사용되지 않는다.