Node의 자원을 여러 Pod이 나눠서 써야하는 상황에서, 자원이 부족할 때 어떤 Pod에 리소스배분을 우선시 할 것인지 우선순위를 정하는 것. 3가지로 나뉘며, 이는 spec.containers[].resources에 어떻게 리소스 설정을 했느냐 조건에 따라 자동으로 인식되어 구분된다.
1순위(최우선순위) - Guaranteed
- 모든 Container에
Request
와Limit
가 설정되어 있어야 한다. - 그리고, 그
Request
와Limit
에는 모두Memory
와CPU
가 설정되어 있어야 한다. - 그리고
Request
와Limit
의 설정 값이 같아야 한다.
2순위 - Burstable
- Guaranteed(1순위)와 BestEffort(3순위)의 중간 형태이다. 즉, 1순위와 3순위 조건의 여집합이다.
- 만일 Burstable인 Pod가 여러개 있을 때,
OOM Score
(Request
에 해당하는Memory
대비, App의실제
Memory
사용량 비율)라는 걸 계산해서 우선순위를 세분화한 뒤 그OOM Score
가 높은 Pod를 먼저 제거한다.
3순위(가장 후순위) - BestEffort
- Request와 Limit이 어떤 컨테이너에도 설정되어있지 않아야 한다.
[참고자료]
https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88