스케줄링 그룹

스케줄링 그룹

기능 상태: Beta since Kubernetes v1.37; disabled by default
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.

파드파드그룹에 연결하여 파드가 함께 스케줄링되는 여러 파드로 이루어진 그룹에 속한다는 것을 나타낼 수 있다. 이를 통해 스케줄러는 각 파드를 독립적으로 처리하는 대신 갱(gang) 스케줄링과 같은 그룹 수준 정책을 적용할 수 있다.

스케줄링 그룹 지정

GenericWorkload 기능 게이트가 활성화되어 있으면, 파드 매니페스트에서 spec.schedulingGroup 필드를 설정할 수 있다. 이 필드는 이름을 통해 같은 네임스페이스에 있는 특정 파드그룹 오브젝트와의 연결을 설정한다.

apiVersion: v1
kind: Pod
metadata:
  name: worker-0
  namespace: some-ns
spec:
  schedulingGroup:
    podGroupName: training-worker-0
  containers:
  - name: ml-worker
    image: training:v1

schedulingGroup 필드는 불변(immutable)이다. 한 번 설정되면 파드를 다른 파드그룹으로 옮길 수 없다.

동작 방식

spec.schedulingGroup을 설정하면, 스케줄러는 참조된 파드그룹을 조회하고 해당 파드그룹에 정의된 스케줄링 정책을 다음과 같이 적용한다.

  • 파드그룹basic 정책을 사용하는 경우, 각 파드는 표준 쿠버네티스 동작 방식에 따라 독립적으로 스케줄링된다. 이때 그룹 지정은 그룹 수준 레이블로 사용된다.
  • 파드그룹gang 정책을 사용하는 경우, 파드는 "전부 아니면 전무(all-or-nothing)" 스케줄링 라이프사이클에 진입한다. 스케줄러는 그룹 내 최소한 minCount개의 파드를 동시에 배치하려고 시도하며, 최소 개수가 충족되지 않으면 어느 파드도 노드에 바인딩되지 않는다.
기능 상태: Alpha since Kubernetes v1.37; disabled by default
More information about this feature

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

See Enable Or Disable Feature Gates for more information.

CompositePodGroup 기능 게이트가 활성화되면, 파드그룹은 부모 컴포지트파드그룹(CompositePodGroup)을 지정할 수도 있다. 계층적 워크로드에서는, 전체 그룹 트리에 걸쳐 정의된 정책(예: 다단계 갱 스케줄링 또는 토폴로지 제약 조건 등)에 따라 스케줄링이 결정된다.

존재하지 않는 그룹 참조

파드가 아직 존재하지 않는 파드그룹을 참조하는 경우, 해당 파드는 보류(pending) 상태로 유지된다. 마찬가지로, 참조된 파드그룹이 (spec.parentCompositePodGroupName을 통해) 아직 생성되지 않은 부모 컴포지트파드그룹을 지정하는 경우, 스케줄링이 시작되지 않으며 전체 그룹 계층이 클러스터에 존재할 때까지 파드는 보류 상태로 유지된다.

필요한 모든 파드그룹컴포지트파드그룹 리소스가 존재하게 되면, 스케줄러는 자동으로 해당 파드를 다시 검토한다.

다음 내용

최종 수정 September 07, 2026 at 7:49 PM PST: apply review feedback (3da034f5ba)