3. K8s 실전 활용을 위한 10단계

김하영·2021년 11월 10일
0

'15단계로 배우는 도커와 쿠버네티스' 기반으로 내용 정리하였습니다.

  • 오토스케일
    부하에 반응하여 자동으로 처리 능력 조절

오토스케일은 CPU와 메모리 사용률에 따라 파드나 노드의 수를 자동으로 늘리고 줄이는 기능을 말한다.
특히 퍼블릭 클라우드에서는 노드의 개수, 이용 시간에 따라 비용이 달라지기 때문에 비용 최적화와도 연결된다.

온프레미스에서는 제한된 서버의 자원을 최대한 활용하는 것이 좋다.
(우리도 오토스케일 처리가 되어있나?? cloud-dev)

예를 들면, 업무 시간대에는 사용자의 요청을 처리하는 파드의 비중을 높이고, 심야 시간대에는 배치를 수행하는 파드의 비중을 높이는 식으로 활용하여 처리한다.

  • 수평 파드 오토스케일러 (Horizontal Pod Autoscaler,HPA)
  • 클러스터 오토스케일러 (Cluster Autoscaler,CA)

HPA는 파드의 CPU 사용률을 감시하면서 파드의 레플리카 수를 늘리거나 줄인다.
그러나 새로운 노드를 추가하지는 않는다.

CA는 필요할 때 노드를 자동으로 추가한다.
클라우드의 API와 연동하여 노드를 늘리거나 줄여 비용 절약이 가능하다. (HPA는 불가능)

오토스케일을 사용하기 위해서는 컨테이너가 갑작스런 종료 후, 대응을 할 수 있어야 한다.
즉, 종료 요청 시그널 SIGTERM을 받으면 종료 처리를 수행하고 컨테이너를 종료하도록 구현해야한다.

오토스케일링 작업

HPA는 루프를 돌면서 대상이 되는 파드의 CPU 사용률을 정기적으로 수집한다.
그리고 파드의 CPU 사용률의 평균을 목표값이 되도록 레플리카 수를 조절한다.

그냥 오토스케일이랑 오토스케일린 작업이 뭔지만..

마무리

  • 파드 수를 부하에 맞게 자동으로 조절하는 기능으로 HPA를 사용할 수 있다.
  • HPA는 CPU의 평균 사용률과 목표 사용률이 일치하도록 레플리카 수를 조절한다.
  • 스케일 업은 이전 동작에서 3분 뒤에 발동되고, 스케일 다운은 5분 뒤에 발동된다.
  • HPA가 목표로 하는 CPU 사용률은 파드의 실제 CPU 사용 시간을 매니페스트에 기재한
    CPU 요구 시간으로 나누어서 구한다.
  • HPA는 파드의 개수만 조절할 수 있기 떄문에 노드의 개수까지 조절하고 싶다면 CA를 고려한다.
    단, 이 기능은 클라우드 프로바이더의 기능 지원이 필수다.
profile
Back-end Developer

0개의 댓글