왜 요즘 EKS 환경에서는 Karpenter를 더 많이 사용할까?

정성헌·2026년 3월 31일
post-thumbnail

Kubernetes에서 HPA를 사용하면 Pod 개수는 자동으로 늘릴 수 있다.
하지만 Pod가 늘어났을 때 이를 실제로 수용할 Node 자원이 부족하면 일부 Pod는 Pending 상태로 남게 된다.

이때 필요한 것이 Node Autoscaling이다.
대표적인 도구가 Cluster AutoscalerKarpenter인데, 둘 다 노드를 자동으로 늘려준다는 점은 같지만 동작 방식은 꽤 다르다.


HPA와 Node Autoscaler의 관계

  • HPA: Pod 개수 조절
  • Cluster Autoscaler / Karpenter: Node 개수 조절

즉, HPA가 Pod를 늘리고, Node가 부족하면 Node Autoscaler가 새 Node를 추가하는 구조다.

아키텍처 흐름

flowchart LR
    A[User Traffic Increase] --> B[HPA scales out Pods]
    B --> C[Some Pods become Pending]
    C --> D[Node Autoscaler works]
    D --> E[New Node added]
    E --> F[Pending Pods scheduled]

Cluster Autoscaler란?

Cluster Autoscaler는 미리 만들어둔 Node Group을 기준으로 확장한다.
예를 들어 AWS EKS에서 Managed Node Group이나 Auto Scaling Group을 먼저 구성해두고, 스케줄되지 못한 Pod가 생기면 그중 하나의 크기를 늘리는 방식이다.

즉, Cluster Autoscaler는
“이미 준비된 Node Group의 크기를 조절하는 방식” 이라고 볼 수 있다.


Karpenter란?

Karpenter는 Pending Pod의 요구사항을 보고, 그에 맞는 Node를 그때그때 새로 생성한다.
CPU, Memory, Architecture, Spot 여부 같은 조건을 기준으로 더 적절한 인스턴스를 선택할 수 있다.

즉, Karpenter는
“Node Group 중심이 아니라 워크로드 중심으로 확장하는 방식” 이다.


두 도구의 가장 큰 차이

핵심 차이는 확장의 기준이다.

  • Cluster Autoscaler: 미리 정의된 Node Group 기준
  • Karpenter: Pending Pod의 실제 요구사항 기준

한 문장으로 정리하면 이렇다.

Cluster Autoscaler는 Node Group 중심, Karpenter는 워크로드 중심이다.

비교 다이어그램

flowchart TD
    subgraph CA[Cluster Autoscaler]
        A1[Pending Pod 발생] --> A2[기존 Node Group 확인]
        A2 --> A3[Node Group 크기 증가]
        A3 --> A4[새 Node 추가]
    end

    subgraph KP[Karpenter]
        B1[Pending Pod 발생] --> B2[Pod 요구사항 분석]
        B2 --> B3[적절한 인스턴스 선택]
        B3 --> B4[새 Node 생성]
    end

왜 요즘은 Karpenter를 많이 사용할까?

1. 비용 최적화

Karpenter는 Pod 요구사항에 맞는 인스턴스를 더 유연하게 선택할 수 있어서, 불필요하게 큰 Node를 유지할 가능성을 줄여준다.

2. 운영 단순화

Cluster Autoscaler는 Node Group이 많아질수록 설계와 관리가 복잡해진다.
반면 Karpenter는 Node Group 설계 부담을 줄여준다.

3. 워크로드 변화 대응

서비스가 많고 요구사항이 다양한 환경에서는, Karpenter처럼 상황에 맞는 Node를 바로 생성하는 방식이 더 잘 맞는다.

Karpenter가 선호되는 이유

flowchart LR
    A[Workload Diversity] --> D[Karpenter]
    B[Cost Optimization] --> D
    C[Operational Simplicity] --> D

Cluster Autoscaler가 여전히 괜찮은 경우

그렇다고 Cluster Autoscaler가 무조건 뒤처진 것은 아니다.
클러스터 구조가 단순하고, Node Group 수가 많지 않으며, 현재 운영 방식이 안정적이라면 Cluster Autoscaler도 충분히 좋은 선택이다.

즉, 무조건 하나가 정답이라기보다는
클러스터 규모와 운영 복잡도에 따라 선택이 달라진다.


마무리

정리하면 아래와 같다.

  • Cluster Autoscaler: 미리 준비한 Node Group을 확장
  • Karpenter: Pending Pod에 맞는 Node를 직접 생성

최근 EKS 환경에서 Karpenter가 많이 사용되는 이유는
비용 효율성, 운영 단순화, 유연한 확장성 때문이다.

profile
develop myself

0개의 댓글