devops/Kubernetes

Spring boot KEDA 예제

아이티.파머 2025. 10. 12. 21:13
728x90

keda란?

kubenetes base event driven autoscaler로 외부로 부터 다양한 이벤트를 받아 애플리케이션 파드들을 오토스케일링하기 위한 목적으로 개발된 경량의 쿠버네티스 컴포넌트 입니다.

https://keda.sh/

 

왜 그리고 언제 사용하나요?

이번 예제에서는 KEDA를 사용하여 이벤트가 많이 발생되었을때 Kafka의 leg 부분을 모니터링 하고 우리가 지정한 leg 범위까지 늘어 졌을때 keda가 어떻게 잘 동작되는지 알아 보려 합니다.

그럼왜? HPA를 안쓰고 KEDA를 사용하나요!?

HPA로 늘어난 CPU 및 메모리 리소스의 사용량 대해서 스케일업이 가능하게 구성 할 수도 있으나, 이는 위에 언급한 요청량에 의한 모니터링은 불가능합니다.

만약 갑자기 많은 요청에 의해 Kafka Topic의 leg가 벌어지게 되면 어떻게 될가요? HPA 설정 만으로는 처리량을 모두 감당 할 수 없습니다.

KEDA를 사용하여, kafka의 특정 부분을(leg) 모니터링 하고 이에 따라 pod를 늘려 주는 설정으로 갑자기 대규모 트래픽이 몰렸을때 대응할 수 있습니다.

kind : scaledObject 를 사용합니다.

조건

topic에서 leg가 벌어지는 범위를 모니터링합니다.

  • leg 범위 : 1000
  • 모니터링 주기 : 30초
  • 스케일링 범위 : 최소 1 최대 10

다이어그램

<<이미지>>

 

 

글 순서

  1. kafka docker , cluster 설정 (zookiper 를 사용하지 않고 kraft 사용해보기)
  2. keda 성능 테스트를 위한 spring boot server 예제
  3. kubernetes keda 네임스페이스 설정 및 어플리케이션 (pod) 실행
  4. keda 테스트 및 결과