Pod - QoS Classes
어떨 때 쓸까
- 노드에 리소스가 있음
- 노드 위에 파드가 세 개 있고 균등하게 자원 사용 중
- 이 상황에서 파드1이 추가적으로 자원을 사용해야 하는 상황이 생김
- 근데 자원이 없다고 에러가 나야하나 아니면 다른 파드를 희생시켜야 할까?
- 쿠버네티스는 앱의 중요도에 따라 이런걸 관리할 수 있도록 QoS Classes를 지원
- BestEffort가 부여된 파드가 먼저 다운됨 --> 회수된 자원을 파드1이 사용
- 그 다음 파드2가 남은 자원보다 더 많은 자원을 요구할 때
- Burstable이 다운되고 자원이 회수됨
어떻게 설정할까
- 컨테이너에 resources 설정이 있는데 requests와 limits에 따라 메모리와 CPU를 어떻게 설정하느냐에 따라 결정
Guaranteed
- 파드에 여러 컨테이너마다 Request와 Limit이 있어야 함
- 그 안에 Memory와 CPU도 설정되어 있어야 함
- 각 컨테이너 내에 Memory와 CPU의 Request와 Limit의 값이 같아야 함
BestEffort
- 파드의 어떤 컨테이너에도 Requests와 Limits가 설정되어 있지 않음
Burstable
- Guaranteed와 BestEffort의 중간
- 컨테이너마다 Requests와 Limits이 설정되어있지만 Requests가 작거나
- Requests만 설정되어 있거나
- 컨테이너가 2개인데 컨테이너 하나는 완벽하게 설정되어 있는데 다른 컨테이너는 그렇지 않은 경우
Burstable에 여러 파드가 있을 때 누가 먼저 삭제되나
- OOM(Out Of Memory) Score로 결정됨
- Request Memory에 대해 앱이 Memory를 얼마나 사용하냐
- 이 값이 큰 파드부터 삭제함
출처
인프런 - 대세는 쿠버네티스
'네트워크 > k8s' 카테고리의 다른 글
[k8s] 23. Pod - Node Scheduling - 실습 (0) | 2021.02.17 |
---|---|
[k8s] 22. Pod - Node Scheduling (0) | 2021.02.17 |
[k8s] 20. Pod - ReadinessProbe, LivenessProbe - 실습 (0) | 2021.02.17 |
[k8s] 19. Pod - ReadinessProbe, LivenessProbe (0) | 2021.02.17 |
[k8s] 18. Pod - Lifecycle (0) | 2021.02.16 |