Prometheus를 통해서 리소스를 모니터링한 결과 상대적으로 부하가 심한 Receiver / Sender 서버에 HPA를 적용했다. 다음 영상은 아키텍처상에서 HPA가 동작해 경고 및 자가치유 알람이 발생하는 과정이며, 이때 주어진 트래픽은 부하테스트 결과를 참고해 ‘Jmeter/10thread/10000건의 메시지를 발송’의 결과이다.

scale-out 순서:

  1. 트래픽이 몰려 부하가 발생한다

  2. (우측) DevOps팀을 대상으로한 Slack 채널에서 Prometheus Resource 경고 알람이 발생한다.

  3. (좌측) k8s Metrics Server에서 리소스 변화를 감지하고 HPA(오토스케일링)이 trigger된다.

    → 새로운 파드 생성시 readiness probe를 거쳐서 파드가 준비가 됬을때 트래픽이 로드밸런싱된다.

    → 상대적으로 부하가 심한 Receiver 서버가 1→4로 증가했고, Sender Server는 1→2로 증가했음을 볼 수 있다.

  4. (우측) DevOps팀을 대상으로한 Slack 채널에서 KubeWatch가 클러스터에 변화를 감지하고 자가치유 알림 메시지를 발송한다.

scale-in 순서:

  1. 트래픽이 줄어든다
  2. 프로메테우스에서 Resource Resolved알람이 오고 HPA를 통해서 오토스케일링이 trigger되어 파드의 갯수가 줄어든다.

스케일아웃 완성본.mov

스케일인 완성본.mov