6.13. Pod 중단 예산
Pod 중단 예산을 이해하고 구성합니다.
6.13.1. Pod 중단 예산을 사용하여 실행 중인 pod 수를 지정하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
Pod 중단 예산을 사용하면 유지보수를 위해 노드를 드레이닝하는 등 작업 중에 Pod에 대한 보안 제약 조건을 지정할 수 있습니다.
PodDisruptionBudget
은 동시에 작동해야 하는 최소 복제본 수 또는 백분율을 지정하는 API 오브젝트입니다. 프로젝트에서 이러한 설정은 노드 유지 관리 (예: 클러스터 축소 또는 클러스터 업그레이드) 중에 유용할 수 있으며 (노드 장애 시가 아니라) 자발적으로 제거된 경우에만 적용됩니다.
PodDisruptionBudget
오브젝트의 구성은 다음과 같은 주요 부분으로 구성되어 있습니다.
- 일련의 pod에 대한 라벨 쿼리 기능인 라벨 선택기입니다.
동시에 사용할 수 있어야 하는 최소 pod 수를 지정하는 가용성 수준입니다.
-
minAvailable
은 중단 중에도 항상 사용할 수 있어야하는 pod 수입니다. -
maxUnavailable
은 중단 중에 사용할 수없는 pod 수입니다.
-
Available
은 condition Ready=True
가 있는 Pod 수를 나타냅니다. ready=True
는 요청을 처리할 수 있는 Pod를 참조하며 일치하는 모든 서비스의 부하 분산 풀에 추가해야 합니다.
maxUnavailable
0 %
또는 0
이나 minAvailable
의 100 %
혹은 복제본 수와 동일한 값은 허용되지만 이로 인해 노드가 드레인되지 않도록 차단할 수 있습니다.
maxUnavailable
의 기본 설정은 OpenShift Container Platform의 모든 머신 구성 풀에 대해 1
입니다. 이 값을 변경하지 않고 한 번에 하나의 컨트롤 플레인 노드를 업데이트하는 것이 좋습니다. 컨트롤 플레인 풀의 경우 이 값을 3
으로 변경하지 마십시오.
다음을 사용하여 모든 프로젝트에서 pod 중단 예산을 확인할 수 있습니다.
oc get poddisruptionbudget --all-namespaces
$ oc get poddisruptionbudget --all-namespaces
출력 예
PodDisruptionBudget
은 시스템에서 최소 minAvailable
pod가 실행중인 경우 정상으로 간주됩니다. 이 제한을 초과하는 모든 pod는 제거할 수 있습니다.
Pod 우선 순위 및 선점 설정에 따라 우선 순위가 낮은 pod는 pod 중단 예산 요구 사항을 무시하고 제거될 수 있습니다.
6.13.2. Pod 중단 예산을 사용하여 실행해야 할 pod 수 지정 링크 복사링크가 클립보드에 복사되었습니다!
PodDisruptionBudget
오브젝트를 사용하여 동시에 가동되어야 하는 최소 복제본 수 또는 백분율을 지정할 수 있습니다.
절차
pod 중단 예산을 구성하려면 다음을 수행합니다.
다음과 같은 오브젝트 정의를 사용하여 YAML 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 오브젝트를 프로젝트에 추가합니다.
oc create -f </path/to/file> -n <project_name>
$ oc create -f </path/to/file> -n <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.13.3. 비정상적인 Pod에 대한 제거 정책 지정 링크 복사링크가 클립보드에 복사되었습니다!
PDB(Pod 중단 예산)를 사용하여 동시에 사용할 수 있어야 하는 Pod 수를 지정하는 경우 제거로 간주되는 비정상적인 Pod에 대한 기준을 정의할 수도 있습니다.
다음 정책 중 하나를 선택할 수 있습니다.
- IfHealthyBudget
- 정상 상태가 아닌 실행 Pod는 보호된 애플리케이션이 손상되지 않은 경우에만 제거할 수 있습니다.
- AlwaysAllow
-
Pod 중단 예산의 기준이 충족되는지 여부에 관계없이 아직 정상 상태가 아닌 실행 Pod를 제거할 수 있습니다. 이 정책은
CrashLoopBackOff
상태에 남아 있거나Ready
상태를 보고하지 못하는 Pod와 같은 애플리케이션의 문제를 제거하는 데 도움이 될 수 있습니다.
Pod 중단 예산에 대해 비정상적인 Pod 제거 정책을 지정하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
이 기술 프리뷰 기능을 사용하려면 TechPreviewNoUpgrade
기능 세트를 활성화해야 합니다.
클러스터에서 TechPreviewNoUpgrade
기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.
프로세스
PodDisruptionBudget
오브젝트를 정의하는 YAML 파일을 생성하고 비정상 Pod 제거 정책을 지정합니다.pod-disruption-budget.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
IfHealthyBudget
또는AlwaysAllow
를 비정상 Pod 제거 정책으로 선택합니다.unhealthyPodEvictionPolicy
필드가 비어 있는 경우 기본값은IfHealthyBudget
입니다.
다음 명령을 실행하여
PodDisruptionBudget
오브젝트를 생성합니다.oc create -f pod-disruption-budget.yaml
$ oc create -f pod-disruption-budget.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AlwaysAllow
비정상적인 Pod 제거 정책이 설정된 PDB를 사용하면 노드를 드레이닝하고 이 PDB에서 방해하는 애플리케이션의 Pod를 제거할 수 있습니다.