8.5.3.2. 오버커밋 및 QoS (Quality of Service) 클래스 이해
오버 커밋된 환경에서 QoS(Quality of Service) 클래스를 사용하여 클러스터가 올바르게 구성되었는지 확인할 수 있습니다.
요청이 없는 pod가 예약되어 있거나 해당 노드의 모든 pod에서 제한의 합계가 사용 가능한 머신 용량을 초과하면 노드가 오버 커밋됩니다.
오버 커밋된 환경에서 노드의 Pod는 지정된 시점에서 사용 가능한 것보다 더 많은 컴퓨팅 리소스를 사용하려고 시도할 수 있습니다. 이 경우 노드는 각 pod에 우선 순위를 지정해야합니다. 이러한 결정을 내리는 데 사용되는 기능을 QoS(Quality of Service) 클래스라고 합니다.
Pod는 우선순위 순서가 감소된 세 가지 QoS 클래스 중 하나로 지정됩니다.
| 우선 순위 | 클래스 이름 | 설명 |
|---|---|---|
| 1 (가장 높음) | Guaranteed | 모든 리소스에 대해 제한 및 요청(선택 사항)이 설정되고 (0과 같지 않음) Pod는 Guaranteed 로 분류됩니다. |
| 2 | Burstable | 모든 리소스에 대해 요청 및 제한(선택 사항)이 설정되고 (0과 같지 않음) Pod는 Burstable 로 분류됩니다. |
| 3 (가장 낮음) | BestEffort | 리소스에 대해 요청 및 제한이 설정되지 않은 경우 Pod는 BestEffort 로 분류됩니다. |
메모리는 압축할 수 없는 리소스이므로 메모리가 부족한 경우 우선 순위가 가장 낮은 컨테이너가 먼저 종료됩니다.
- Guaranteed 컨테이너는 우선 순위가 가장 높은 컨테이너로 간주되며 제한을 초과하거나 시스템의 메모리가 부족하고 제거할 수 있는 우선 순위가 낮은 컨테이너가 없는 경우에만 종료됩니다.
- 시스템 메모리 부족 하의 Burstable 컨테이너는 요청을 초과하고 다른 BestEffort 컨테이너가 존재하지 않을 때 종료될 가능성이 높습니다.
- BestEffort 컨테이너는 우선 순위가 가장 낮은 컨테이너로 처리됩니다. 시스템에 메모리가 부족한 경우 이러한 컨테이너의 프로세스가 먼저 종료됩니다.
8.5.3.2.1. Quality of Service (QoS) 계층에서 메모리 예약 방법 링크 복사링크가 클립보드에 복사되었습니다!
qos-reserved 매개변수를 사용하여 특정 QoS 수준에서 pod에 예약된 메모리의 백분율을 지정할 수 있습니다. 이 기능은 요청된 리소스를 예약하여 더 높은 QoS 클래스의 Pod에서 요청한 리소스를 사용하지 못하도록 더 낮은 QoS 클래스의 Pod를 제외하려고 합니다.
OpenShift Container Platform은 다음과 같이 qos-reserved 매개변수를 사용합니다.
-
qos-reserved=memory=100%값은Burstable및BestEffortQoS 클래스가 더 높은 QoS 클래스에서 요청한 메모리를 소비하지 못하도록 합니다. 이를 통해BestEffort및Burstable워크로드에서 OOM이 발생할 위험이 증가되어Guaranteed및Burstable워크로드에 대한 메모리 리소스의 보장 수준을 높이는 것이 우선됩니다. -
qos-reserved=memory=50%값은Burstable및BestEffortQoS 클래스가 더 높은 QoS 클래스에서 요청한 메모리의 절반을 소비할 수 있도록 합니다. -
qos-reserved=memory=0%값을 사용하면Burstable및BestEffortQoS 클래스가 사용 가능한 경우 최대 노드 할당 가능 양을 사용할 수 있지만Guaranteed워크로드가 요청된 메모리에 액세스할 수 없는 위험이 증가합니다. 이로 인해 이 기능은 비활성화되어 있습니다.