Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.2.6. 사용 가능한 우선순위

우선순위는 기본 설정에 따라 나머지 노드의 순위를 지정하는 규칙입니다.

스케줄러를 구성하기 위해 사용자 정의 우선순위 집합을 지정할 수 있습니다. OpenShift Container Platform에는 기본적으로 제공되는 몇 가지 우선순위가 있습니다. 특정 매개변수를 제공하여 기타 우선순위를 사용자 정의할 수 있습니다. 여러 우선순위를 결합하고 각각 서로 다른 가중치를 부여하여 우선순위 지정에 영향을 미칠 수 있습니다.

16.2.6.1. 정적 우선순위

정적 우선순위에는 가중치를 제외하고 사용자의 구성 매개변수가 사용되지 않습니다. 가중치를 지정해야 하며 0 또는 음수를 사용할 수 없습니다.

이러한 값은 스케줄러 구성(기본적으로 /etc/origin/master/scheduler.json )에 지정됩니다.

16.2.6.1.1. 기본 우선순위

기본 스케줄러 정책에는 다음과 같은 우선순위가 포함됩니다. 가중치가 10000NodePreferAvoidPodsPriority 를 제외하고 각 우선순위 함수의 가중치는 1 입니다.

SelectorSpreadPriority는 서비스, RC(복제 컨트롤러),RS(복제 집합), Pod와 일치하는 상태 저장 세트를 찾은 다음 해당 선택기와 일치하는 기존 Pod를 찾습니다. 스케줄러에서는 일치하는 기존 Pod가 적은 노드를 선호합니다. 그런 다음 Pod를 예약할 때 해당 선택기와 일치하는 Pod 수가 가장 적은 노드에 Pod를 예약합니다.

{"name" : "SelectorSpreadPriority", "weight" : 1}

InterPodAffinityPriority는 weighted PodAffinityTerm의 요소를 반복하고 해당 PodAffinityTerm이 해당 노드에 대해 충족되는 경우 합계에 가중치 를 추가하여 합계를 계산합니다. 합계가 가장 많은 노드를 가장 우선적으로 고려합니다.

{"name" : "InterPodAffinityPriority", "weight" : 1}

LeastRequestedPriority는 요청된 리소스가 적은 노드를 선호합니다. 노드에 예약된 Pod에서 요청한 메모리 및 CPU의 백분율을 계산하고 사용 가능한/남은 용량이 가장 많은 노드에 우선순위를 부여합니다.

{"name" : "LeastRequestedPriority", "weight" : 1}

BalancedResourceAllocation 은 리소스 사용률이 균형 있는 노드를 선호합니다. 사용한 CPU와 메모리 간의 차이를 용량의 일부로 계산하고 두 메트릭이 서로 얼마나 비슷한지에 따라 노드에 우선순위를 부여합니다. 이 우선순위는 항상 LeastRequestedPriority와 함께 사용해야 합니다.

{"name" : "BalancedResourceAllocation", "weight" : 1}

NodePreferAvoidPodsPriority 는 복제 컨트롤러 이외의 컨트롤러에서 소유한 Pod를 무시합니다.

{"name" : "NodePreferAvoidPodsPriority", "weight" : 10000}

NodeAffinityPriority는 노드 유사성 스케줄링 기본 설정에 따라 노드에 우선순위를 부여합니다.

{"name" : "NodeAffinityPriority", "weight" : 1}

TaintTolerationPriority는 Pod 에 대해 허용 불가 테인트 수가 적은 노드에 우선순위를 부여합니다. 허용 불가 테인트에는 주요 PreferNoSchedule이 있습니다.

{"name" : "TaintTolerationPriority", "weight" : 1}
16.2.6.1.2. 기타 정적 우선순위

OpenShift Container Platform에서는 다음과 같은 우선순위도 지원합니다.

EqualPriority 는 우선순위 구성이 제공되지 않는 경우 모든 노드에 동일한 가중치를 부여합니다. 이 우선순위는 테스트 환경에만 사용하는 것이 좋습니다.

{"name" : "EqualPriority", "weight" : 1}

MostRequestedPriority는 요청된 리소스가 가장 많은 노드에 우선순위를 부여합니다. 노드에 예약된 Pod에서 요청한 메모리와 CPU의 백분율을 계산하고 평균 용량 대비 요청 비율의 최댓값에 따라 우선순위를 부여합니다.

{"name" : "MostRequestedPriority", "weight" : 1}

ImageLocalityPriority는 요청된 Pod 컨테이너의 이미지가 이미 있는 노드에 우선순위를 부여합니다.

{"name" : "ImageLocalityPriority", "weight" : 1}

ServiceSpreadingPriority는 동일한 서비스에 속하는 Pod 수를 동일한 머신에 최소화하여 Pod를 확장합니다.

{"name" : "ServiceSpreadingPriority", "weight" : 1}