logo
logo
EKS 클러스터 Karpenter 적용
코드너리  |  2022. 11. 28
쿠버네티스 환경
사용된 기술:
kubernetes-image
content

기존 문제점:

  1. 카카오스타일 역시 대부분의 주요 마이크로서비스가 EKS 상에서 운영되고 있고, 유저들이 많이 사용하는 시간대 패턴이 있다 보니 하루에도 몇 번씩 Node 가 늘어났다 줄어드는 경험을 하게 됩니다. AWS 의 경우는 AutoScaling Group(ASG) 을 통해 CA 기능을 구현하기 때문에 Node 추가에 생각보다 오랜 시간이 걸립니다.
  2. 또한, 워크로드별 인스턴스 요구사항이 달라 여러 관리형 Node Group 을 도입해야 한다면 여러 벌의 ASG 을 운영해야 하는 등 운영 부담이 늘어납니다.

카펜터 동작 방식:

  1. Horizontal Pod AutoScaler(HPA) 에 의한 Pod의 수평적 확장이 한계에 다다르면, Pod 는 적절한 Node 를 배정받지 못하고 pending 상태에 빠집니다.
  2. 이때 Karpenter 는 지속해서 unscheduled Pod 를 관찰하고 있다가, 새로운 Node 추가를 결정하고 직접 배포합니다.
  3. 추가된 Node가 Ready 상태가 되면 Karpenterkube-scheduler 를 대신하여 pod 의 Node binding 요청도 수행합니다.

위와 같이 Karpenter 는 기존 CA 에 비해 훨씬 단순한 구조를 가지고 있으며 클러스터 확장 시 일어나는 많은 부분을 Karpenter 에서 직접 처리해서 빠르게 확장을 처리할 수 있도록 설계되었습니다. 모든 Worker Node 는 Karpenter 에 의해 lifecycle 이 결정됩니다.

Karpenter 의 장점

  1. 운영 부담 절감
  2. 신속한 Node 추가와 제거
  3. 자동 Node 롤링
  4. 다양한 인스턴스 타입을 쉽게 적용
Copyright © 2025. Codenary All Rights Reserved.