편안히 주무세요, 클러스터 올바르게: 새벽 3시 현금 소진을 멈추세요

발행: (2025년 12월 21일 오전 12:28 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

문제: 항상 켜져 있는 클러스터

대부분의 Kubernetes 클러스터는 사용자가 활동하지 않을 때도 24시간 가동됩니다. CPU 기반 HPA는 도움을 주려 하지만, VPA가 추가되면 금세 무너지게 됩니다. 더 똑똑한 스케일링이 없으면 HPA와 VPA가 서로 충돌하여 유휴 파드와 낭비된 리소스가 남게 됩니다.

KEDA를 활용한 이벤트‑드리븐 스케일링

KEDA는 추측이 아닌 실제 이벤트에 기반해 스케일링을 할 수 있게 해줍니다:

  • Prometheus 스케일러 – 관련 메트릭이 작업을 나타낼 때 스케일링을 트리거합니다.
  • Cron 스케일러 – 명시적인 시간대(예: 비업무 시간)를 정의해 워크로드를 다운스케일합니다.

피크 시간대에는 메트릭 트리거가 빠른 스케일‑아웃을 유도하고, 트래픽이 적은 기간에는 Cron 트리거가 예측 가능한 스케일‑다운을 강제합니다. 두 가지를 결합하면 작업이 있을 때만 워크로드가 실행됩니다. 요청이 들어오면 파드가 빠르게 스케일‑아웃되고, 더 긴 스케일‑다운 기간이 남은 트래픽을 처리한 뒤 클러스터가 다시 축소됩니다.

Karpenter를 이용한 노드‑레벨 자동 스케일링

완벽한 파드 스케일링을 하더라도 유휴 노드는 여전히 비용이 발생합니다. Karpenter는 KEDA와 보완적으로 작동합니다:

  • 워크로드가 사라지는 즉시 빈 노드를 통합하고 종료합니다.
  • 필요할 때만 더 큰 “고성능” 노드를 프로비저닝합니다.
  • 아침에 노드를 미리 준비하도록 Cron 트리거를 사용해 개발자에게 즉시 사용 가능한 환경을 제공합니다.

만약 새벽에 조기 트래픽이 발생하면, Cron 윈도우가 끝난 뒤 메트릭 기반 스케일링이 작동해 필요한 파드를 유지합니다.

전체 흐름

  1. KEDA 트리거 정의

    • 요청 속도 또는 레이턴시 메트릭을 위한 Prometheus 스케일러.
    • 알려진 비피크 시간대를 위한 Cron 스케일러.
  2. VPA 구성 – HPA와 충돌하지 않도록 파드 리소스를 조정합니다 (KEDA가 HPA를 대체합니다).

  3. Karpenter 활성화 – 적절한 프로비저너 설정(인스턴스 타입, 제한, 통합 정책) 적용.

  4. 워밍업 Cron 트리거 추가 – 개발자가 첫 로그인을 하기 전에 노드가 준비되도록 합니다.

기대 효과

  • 비용 절감 – 유휴 컴퓨트나 대기 노드에 대한 비용이 없습니다.
  • 예측 가능한 성능 – 워크로드가 필요할 때 정확히 스케일링됩니다.
  • 운영 부담 감소 – 자동 노드 프로비저닝 및 종료가 이루어집니다.
  • 리소스 효율성 – 파드와 노드는 활성 기간에만 존재합니다.

유휴 시간에 비용을 지불하지 마세요. KEDA의 이벤트 기반 트리거와 Karpenter의 노드 관리가 인프라를 여러분을 위해 일하게 합니다.

Back to Blog

관련 글

더 보기 »

Kubernetes 101: 기초 이해와 시작하기

시리즈 소개: 이것은 Kubernetes 구현에 관한 5부 시리즈의 1부입니다. 이 게시물들은 과대광고를 배제하고 실용적인 결정에 초점을 맞춥니다: 무엇이 Kubernetes…