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