본문 바로가기
Infra2026년 5월 21일4분 읽기

Karpenter 1.5 — Spot 인스턴스 70% 클러스터 자동 스케일링 패턴

YS
김영삼
조회 910
Karpenter 1.5 — Spot 인스턴스 70% 클러스터 자동 스케일링 패턴

핵심 요약

Karpenter 1.5의 disruption budget GA와 ARM/AMD 멀티 아키 통합으로 Spot 인스턴스 비중 70%를 안정 운영하면서 인터럽션으로 인한 사용자 영향을 0에 가깝게. 사내 EKS 클러스터 컴퓨트 비용 월 $18,400 → $7,200 (61% 절감).

1. 무엇이 새로워졌나

  • disruption budgets — 시간대별 교체 한도
  • NodeClass 멀티 아키텍처(arm64+amd64) 단일 풀
  • Karpenter Provisioner v1 stable, v0는 deprecation
  • scheduler 라운드 평균 시간 -40%

2. NodePool 예시

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: general
spec:
  template:
    spec:
      requirements:
      - key: karpenter.sh/capacity-type
        operator: In
        values: ["spot", "on-demand"]
      - key: kubernetes.io/arch
        operator: In
        values: ["amd64", "arm64"]
  disruption:
    budgets:
    - nodes: "0"
      schedule: "0 9 * * mon-fri"
      duration: 8h        # 평일 업무 시간 중 disruption 금지
    - nodes: "10%"
      reasons: ["Drifted", "Underutilized"]
  weight: 100

3. Spot 70% 안전 운영

  • topology spread: 인스턴스 타입 30종 이상 허용
  • PDB(PodDisruptionBudget) 모든 워크로드에 설정
  • SQS Interruption Queue로 2분 사전 신호 수신·우아한 종료
  • stateful은 별도 on-demand 풀로 분리

4. 멀티 아키

같은 NodePool에서 arm64·amd64 혼재 허용. Karpenter가 가격·요구사항 보고 자동 선택. 사내 라우터 워크로드는 평균 arm 62%, amd 38% 비율로 자동 안착, 비용 추가 -18%.

5. 모니터링

karpenter_pods_state{phase="pending"}
karpenter_nodes_terminated_total{reason="Interruption"}
karpenter_disruption_evaluation_duration_seconds

Grafana 대시보드 표준 템플릿 사용. PodReady → NodeReady 시차 p95이 핵심 지표.

6. 사고 사례

1.3에서 disruption budget 누락 상태로 야간 deploy → 같은 시각 Spot 인터럽션 → SLA 위반. 1.5의 시간대 budget으로 같은 사고 재발 없음.

7. Cluster Autoscaler 마이그레이션

EKS에서 CAS → Karpenter 이전은 3~4일. 가장 큰 변경은 ASG 의존 제거. 한 번 옮기면 scale-up 지연 60s+ → 15s 이내로 단축.

자주 묻는 질문

Q. GKE/AKS는? AWS 외 정식 지원은 EKS만. GKE는 Autopilot, AKS는 Cluster Autoscaler 또는 KEDA 조합 권장.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록