3.10.2. Descheduler 전략
다음과 같은 Descheduler 전략을 사용할 수 있습니다.
- 노드 사용률이 낮음
LowNodeUtilization
전략은 활용도가 낮은 노드를 찾고 가능한 경우 Pod를 다른 노드에서 제거합니다. 제거된 Pod의 재구축이 이러한 활용도가 낮은 노드에 예약됩니다.노드 활용도가 낮은 것은 구성 가능한 몇 가지 임계값 매개 변수에 의해 결정됩니다. CPU, 메모리 및 Pod 수. 노드의 사용량이 모든 매개변수(CPU, 메모리, Pod 수)에 구성된 임계값 미만인 경우 노드가 활용도가 낮은 것으로 간주됩니다.
CPU, 메모리, Pod 수에 대한 대상 임계값을 설정할 수도 있습니다. 노드의 사용량이 매개변수에 대해 구성된 대상 임계값을 초과하는 경우 노드의 Pod가 제거 대상으로 간주될 수 있습니다.
또한
NumberOfNodes
매개변수를 사용하여 활용도가 낮은 노드 수가 구성된 값보다 많은 경우에만 활성화되도록 전략을 설정할 수 있습니다. 이는 몇 개의 노드가 자주 또는 짧은 기간 동안 활용도가 낮은 대규모 클러스터에서 유용할 수 있습니다.- Pod 중복
RemoveDuplicates
전략을 사용하면 동일한 노드에서 실행 중인 복제본 세트, 복제 컨트롤러, 배포 또는 작업과 연결된 Pod가 하나만 있는지 확인합니다. 더 많은 경우 클러스터에 Pod를 더 잘 분배하기 위해 중복된 Pod가 제거됩니다.이러한 상황은 노드 오류가 발생하고 Pod가 다른 노드로 이동되면 해당 노드에서 복제본 세트, 복제 컨트롤러, 배포 또는 작업과 연결된 두 개 이상의 Pod가 발생할 수 있습니다. 오류가 발생한 노드가 다시 준비되면 이 전략은 중복 Pod를 제거합니다.
이 전략에는 종류
유형 목록을 지정할 수 있는 선택적 매개변수인
. 포드에 이러한 유형이ExcludeOwnerKinds
가 있습니다OwnerRef
로 나열된 경우 해당 포드는 제거 대상으로 간주되지 않습니다.- Pod 간 유사성 방지 위반
RemovePodsViolatingInterPodAntiAffinity
전략은 Pod 간 유사성 방지를 위반하는 Pod가 노드에서 제거되도록 합니다.이러한 상황은 동일한 노드에서 이미 실행 중인 Pod에 대해 유사성 방지 규칙이 생성되면 발생할 수 있습니다.
- 노드 유사성 위반
RemovePodsViolatingNodeAffinity
전략을 사용하면 노드에서 노드 유사성을 위반하는 Pod가 제거됩니다.노드가 더 이상 Pod의 선호도 규칙을 충족하지 않는 경우 이러한 상황이 발생할 수 있습니다. 선호도 규칙을 충족하는 다른 노드를 사용할 수 있는 경우 Pod가 제거됩니다.
- 노드 테인트 위반
RemovePodsViolatingNodeTaints
전략을 사용하면 노드에서NoSchedule
테인트를 위반하는 Pod가 제거됩니다.이러한 상황은 Pod가 테인트
key=value:NoSchedule
을 허용하도록 설정되어 있고 테인트된 노드에서 실행 중인 경우 발생할 수 있습니다. 노드의 테인트가 업데이트 또는 제거되면 테인트는 더 이상 Pod의 허용 오차에 의해 충족되지 않고 Pod가 제거됩니다.- 재시작이 너무 많습니다
RemovePods authenticateTooManyRestarts
전략은 여러 번 재시작된 Pod가 노드에서 제거되도록 합니다.이러한 상황은 Pod를 시작할 수 없는 노드에 예약된 경우 발생할 수 있습니다. 예를 들어 노드에 네트워크 문제가 있고 네트워크로 연결된 영구 볼륨을 마운트할 수 없는 경우 다른 노드에서 예약할 수 있도록 포드를 제거해야 합니다. 또 다른 예로 pod가 크래시 루프 상태인 경우입니다.
이 전략에는 두 가지 구성 가능한 매개변수가 있습니다.
PodRestartThreshold
및포함InitContainers
. Pod가 구성된PodRestartThreshold
값보다 더 많이 재시작되면 Pod가 제거됩니다.IncludingInitContainers
매개변수를 사용하여 Init Container 재시작을PodRestartThreshold
값으로 계산할지 여부를 지정할 수 있습니다.- Pod 수명 시간
PodLifeTime
전략은 너무 오래된 Pod를 제거합니다.Pod가 수명에 도달하면
MaxPodLifeTimeSeconds
매개변수로 설정된 수명(초)이 제거됩니다.