파드 그룹 디스럽션과 우선순위
파드 그룹 디스럽션과 우선순위 (disruption-and-priority)
기능 상태: Kubernetes v1.37부터 Beta, 기본적으로 비활성화됨
이 기능에 대한 자세한 정보
이 기능을 쓰려면 사용자(또는 클러스터 관리자)가 클러스터의 모든 관련 컴포넌트에서 GenericWorkload 기능 게이트를 활성화해야 해요. 자세한 내용은 Enable Or Disable Feature Gates 문서를 참고하세요.
PodGroup은 **디스럽션 모드(disruption mode)**를 선언할 수 있어요. 이 모드는 스케줄러가 실행 중인 PodGroup을 어떻게 디스럽트할 수 있는지, 예를 들어 더 높은 우선순위의 PodGroup을 수용하기 위해 어떻게 하는지를 결정해요. PodGroup은 또한 우선순위를 갖는데, 이는 워크로드 인지 선점(preemption) 이벤트에서 그룹의 개별 파드 우선순위를 대체해요.
참고:
v1.36에서는 PodGroup의 priority 또는 disruptionMode 필드가 워크로드 인지 선점에서만 존중돼요. 파드 스케줄링 단계 동안 스케줄러는 PodGroup의 priority나 disruptionMode 필드를 고려하지 않아요. 이 제한은 v1.37부터 더 이상 적용되지 않아요.
API는 Single과 All이라는 두 가지 디스럽션 모드를 지원해요. 기본값은 Single이에요.
Single
Single 모드는 스케줄러가 그룹의 모든 파드를 별개의 개체로 취급하라고 지시해서, PodGroup에서 단일 파드의 독립적 디스럽션을 허용해요.
All
All 모드는 디스럽션에 대한 '전부 아니면 전무(all-or-nothing)' 의미론을 강조해요. 스케줄러에게 PodGroup의 모든 파드를 함께 디스럽트해야 한다고 지시하죠.
CompositePodGroup
기능 상태: Kubernetes v1.37부터 Alpha, 기본적으로 비활성화됨
이 기능에 대한 자세한 정보
이 기능을 쓰려면 사용자(또는 클러스터 관리자)가 클러스터의 모든 관련 컴포넌트에서 CompositePodGroup 기능 게이트를 활성화해야 해요. 자세한 내용은 Enable Or Disable Feature Gates 문서를 참고하세요.
CompositePodGroup도 사양에 disruptionMode를 선언할 수 있어요. 이것은 선점 이벤트 동안 스케줄러가 복합 그룹 안의 하위 그룹을 어떻게 디스럽트하는지 제어해요.
CompositePodGroup에 대해 API는 두 가지 디스럽션 모드를 지원해요.
Single: 선점 중에CompositePodGroup안의 개별 하위 그룹을 독립적으로 디스럽트할 수 있게 해줘요.All:CompositePodGroup계층구조 전체에 전부 아니면 전무 디스럽션 의미론을 적용해요. 이CompositePodGroup아래의 계층구조에 포함된 어떤 파드든 선점해야 한다면, 전체 계층구조의 모든 파드를 선점해야 해요.
지정하지 않으면 기본값은 Single이에요.
참고:
v1.37에서 그룹은 디스럽션 모드를 All로 설정하고, 하위 그룹은 Single로 설정된 모드를 가질 수 있어요. 이런 경우 최상위 All 모드가 하위의 Single 모드를 재정의해요.
의미론이 명확하지 않으므로 이 구성은 권장되지 않아요.
파드 그룹 우선순위
PodGroup은 단일 파드와 동일한 PriorityClass 개념을 사용해요. 하나 이상의 PriorityClass를 만들면, 그 PriorityClass 이름 중 하나를 사양에 지정하는 PodGroup을 만들 수 있어요. priority 어드미션 컨트롤러는 이를 사용해서 PodGroup의 우선순위를 결정해요.