EKS 클러스터 확장, Karpenter로 해결!

by DD
3년 전
조회수 11

EKS 클러스터확장성 문제 해결을 위해 Karpenter를 도입함

KarpenterAWS 리소스 의존성 없이 JIT 배포를 통해 빠른 Node 확장을 지원함

Provisioner를 활용한 Node 운영 부담 절감, 자동 롤링다양한 인스턴스 타입 적용

Karpenter의 핵심 아키텍처

KarpenterHPA에 의해 Pod가 Pending 상태가 되면, unscheduled Pod를 관찰하여 새로운 Node 추가를 결정한다. 구체적으로, Provisioner를 통해 Node의 인스턴스 타입 및 설정을 정의하고, JIT 배포를 통해 빠르게 Node를 프로비저닝한다. 따라서 기존 CA 방식보다 훨씬 빠른 속도로 클러스터 확장성 확보가 가능하다.

CA vs Karpenter: 트레이드오프 분석

기존 Cluster Autoscaler(CA)ASG에 의존하여 Node 추가에 시간이 오래 걸리는 단점이 있다. 반면 KarpenterJIT 배포를 통해 Node 추가 속도를 획기적으로 개선한다. Provisioner를 통해 Node 운영 부담을 줄일 수 있지만, 초기 설정 및 Karpenter 버전 관리에 주의해야 한다.

Karpenter 실전 적용 가이드

Karpenter 적용 시, Provisioner를 활용하여 다양한 인스턴스 타입을 유연하게 관리할 수 있다. 구체적으로, ttlSecondsAfterEmpty 설정을 통해 Node 자동 제거를, ttlSecondsUntilExpired 설정을 통해 Node 롤링 업데이트를 구현할 수 있다. 따라서 클러스터 운영 효율성을 높이고, 서비스 안정성을 확보할 수 있다.

EKS클러스터 Karpenter 적용기