이번 “Kubestronaut와 함께하는 커뮤니티 데이” 행사에 현장 질문으로 주신 내용을 공유합니다.
- karpenter, keda를 동시에 사용한 이유가 있나요?
전문가 Bro님들의 Insight 공유 부탁드립니다.
이번 “Kubestronaut와 함께하는 커뮤니티 데이” 행사에 현장 질문으로 주신 내용을 공유합니다.
전문가 Bro님들의 Insight 공유 부탁드립니다.
두 도구는 모두 쿠버네티스 환경에서 리소스를 자동으로 늘리거나 줄이는 오토스케일링(Auto Scaling) 기능을 담당하지만, 적용 범위가 서로 다릅니다.
쉽게 말해, KEDA는 ‘애플리케이션 수준의 확장’을, Karpenter는 ‘노드(서버) 수준의 확장’을 담당합니다.
KEDA는 애플리케이션의 실제 부하(예: 메시지 큐 길이, API 요청 수, CPU 사용률 등)를 감지해 Pod 수를 자동으로 조절합니다.
예를 들어, 대기 중인 요청이 많아지면 KEDA가 새로운 Pod를 띄워 처리 속도를 높이고, 요청이 줄면 Pod를 줄여 불필요한 리소스를 줄입니다.
Karpenter는 이때 KEDA가 새 Pod를 띄우려고 할 때, 클러스터 내에 남은 서버 자원이 부족하면 자동으로 새로운 노드(서버) 를 생성해줍니다.
반대로, Pod가 줄어들어 노드가 비게 되면 불필요한 노드를 자동으로 종료시켜 클라우드 비용을 절감합니다.
즉, 두 도구가 서로 보완적인 역할을 수행합니다.
KEDA → “지금 애플리케이션 부하가 늘었으니 Pod를 더 띄워야겠다.”
Karpenter → “Pod를 띄울 서버가 부족하니 새로운 노드를 만들어야겠다.”
이 조합을 통해 Pod와 노드가 함께 유기적으로 확장되며, 결과적으로 서비스는 부하에 유연하게 대응하고, 비용 효율도 극대화됩니다.
요약하자면,
KEDA는 “앱 레벨 오토스케일링(수요 기반 Pod 확장)”
Karpenter는 “인프라 레벨 오토스케일링(리소스 기반 노드 확장)”을 담당하며,
둘을 함께 사용함으로써 완전한 형태의 오토스케일링 체계를 구축할 수 있습니다.