[Retry, k8s] 29. 리소스 관리, 오토 스케일링 - Cluster Autoscaler

Date:     Updated:

카테고리:

태그:


02. Cluster Autoscaler


(클라우드 서비스의 쿠버네스 환경에서 사용한 경우)’Cluster Autoscaler’는 쿠버네티스 클러스터 자체의 오토 스케일링을 의미하며, 수요에 따라 쿠버네티스 노드를 자동으로 추가하는 기능이다.

Pending 상태의 파드가 생기는 타이밍에 처음으로 ‘Cluster Autoscaler’가 동작하게 된다.

즉, Requests와 Limits를 적절하게 설정하지 않은 상태에서는 실제 노드의 부하 평균이 낮은 상황에서도 스케일 아웃이 되거나, 부하 평균이 높은 상황임에도 스케일 아웃이 되지 않는 상황이 발생한다.



리소스에 의한 스케줄링은 Requests(최소)를 기준으로 이루어진다. 즉, Requests를 초과하여 할당한 경우에는 최소 리소스 요청만으로 리소스가 꽉 차 버려서 신규 노드를 추가해야만 한다. (이때 실제 컨테이너 프로세스가 사용하는 리소스 사용량은 고려되지 않는다.)



반대로 Requests를 낮게 설정한 상태에서 Limits를 차이를 크게 나는 상황에서는 각 컨테이너는 Limits로 할당된 리소스를 최대로 사용한다. 그래서 실제 리소스 사용량이 높아졌더라도 Requests 합계로 보면 아직 스케줄링이 가능하기 때문에 클러스터가 스케일 아웃하지 않는 상황이 발생한다.



즉, 기본 정책으로 ‘Requests와 Limits에 너무 큰 차이를 주지 않을 것’, ‘Requests를 너무 크게 설정하지 않을 것’ 이 두 가지를 명심해야 한다.

KUBERNETES 카테고리 내 다른 글 보러가기

댓글 남기기