EKS 클러스터 확장, Karpenter로 해결!
by DD
3년 전
조회수 11
EKS 클러스터의 확장성 문제 해결을 위해 Karpenter를 도입함
Karpenter는 AWS 리소스 의존성 없이 JIT 배포를 통해 빠른 Node 확장을 지원함
Provisioner를 활용한 Node 운영 부담 절감, 자동 롤링 및 다양한 인스턴스 타입 적용
Karpenter의 핵심 아키텍처
Karpenter는 HPA에 의해 Pod가 Pending 상태가 되면, unscheduled Pod를 관찰하여 새로운 Node 추가를 결정한다. 구체적으로, Provisioner를 통해 Node의 인스턴스 타입 및 설정을 정의하고, JIT 배포를 통해 빠르게 Node를 프로비저닝한다. 따라서 기존 CA 방식보다 훨씬 빠른 속도로 클러스터 확장성 확보가 가능하다.
CA vs Karpenter: 트레이드오프 분석
기존 Cluster Autoscaler(CA)는 ASG에 의존하여 Node 추가에 시간이 오래 걸리는 단점이 있다. 반면 Karpenter는 JIT 배포를 통해 Node 추가 속도를 획기적으로 개선한다. Provisioner를 통해 Node 운영 부담을 줄일 수 있지만, 초기 설정 및 Karpenter 버전 관리에 주의해야 한다.
Karpenter 실전 적용 가이드
Karpenter 적용 시, Provisioner를 활용하여 다양한 인스턴스 타입을 유연하게 관리할 수 있다. 구체적으로, ttlSecondsAfterEmpty 설정을 통해 Node 자동 제거를, ttlSecondsUntilExpired 설정을 통해 Node 롤링 업데이트를 구현할 수 있다. 따라서 클러스터 운영 효율성을 높이고, 서비스 안정성을 확보할 수 있다.