
데브옵스
AWS Node Auto Scaler Karpenter 도입기
두줄요약
Karpenter로 Cluster Autoscaler를 교체해 스파크성 트래픽에서 노드 증설 속도를 개선했습니다. 또한 노드 병합과 스팟 운영을 통해 비용 절감과 운영 안정성을 함께 확보했습니다.
문제 상황
- 스파크성 트래픽에서 Cluster Autoscaler의 노드 증설 속도 한계
- 예측 어려운 수요 변동과 클라우드 비용 제약
- Managed NodeGroup과 ASG 기반 운영의 관리 복잡성
해결 방법
- PENDING 파드를 감지해 EC2 Fleet으로 즉시 노드를 생성하는 Karpenter 도입
- Provisioner와 AWSNodeTemplate로 인스턴스 타입, 가용 영역, 온디맨드·스팟 조건 선언
- ttlSecondsAfterEmpty와 consolidation, Bin-Packing으로 노드 병합과 비용 최적화
성능/운영 포인트
- 기존 대비 약 1~2분 빠른 노드 프로비저닝
- 새벽 시간대 노드 수 감소와 EC2 비용 절감 확인
- Spot Interrupt 대응을 위한 NTH, PreStop, PDB, terminationGracePeriodSeconds 설정
주의할 점
- Provisioner 리소스 한도 부족 시 노드 프로비저닝 실패 가능성
- AntiAffinity, TopologySpread, PDB로 인한 노드 병합 저해
- Karpenter 제거 전에 클러스터 삭제 시 노드가 남는 이슈
