Skip to main content
duksoo.dev
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Karpenter do-not-disrupt로 Prod 안정성과 비용 절감 양립하기

Karpenter consolidation의 진짜 어려움은 “켜느냐 끄느냐"가 아니다. 클러스터 안의 워크로드가 모두 같은 수준의 내구성을 갖고 있지 않다는 점이다. 어떤 서비스는 재배치되어도 문제없지만, 어떤 서비스는 한 번의 재시작이 장애로 이어진다.

Prod 환경에서 유휴 노드 3대가 CPU 3~4%로 방치되고 있었지만, consolidation을 켤 수 없었다. 과거에 consolidation으로 민감한 서비스들이 동시에 재시작되면서 장애가 발생한 이력이 있었기 때문이다. do-not-disrupt 어노테이션으로 민감한 서비스만 선택적으로 보호하고, consolidation 시간대를 새벽으로 제한하여 안정성과 비용 절감을 양립한 과정을 공유한다.

이전 글과의 관계

이전 글에서는 Beta 환경에서 Spot + Consolidation + Drift가 복합적으로 작용하는 상황을 다뤘다. 이번 글은 Prod 환경에서 On-Demand + Stable NodePool이라는 다른 맥락이다.

Read full post gdoc_arrow_right_alt

Karpenter 비용 최적화와 안정성 사이의 균형 - Beta 환경 사례

Karpenter는 비용 최적화 도구가 아니다. 노드 수명주기 관리 도구다. 비용 절감은 그 부산물이고, 본질은 “필요한 노드를 필요한 만큼, 최적의 상태로 유지하는 것"이다. 이 본질을 이해하지 못하면 Karpenter의 동작이 공격적으로 느껴지고, 사용자에게는 불안정한 환경으로 보인다.

beta 환경에서 QA 팀이 업무시간 중 잦은 Pod 재시작으로 불편을 호소했다. 원인을 추적하니 Karpenter의 비용 최적화 정책과 Spot 인스턴스, AMI 자동 업데이트가 복합적으로 작용하고 있었다. Karpenter의 Disruption 메커니즘을 이해하고, 비용과 안정성의 균형점을 찾은 과정을 공유한다.

Karpenter란

Karpenter는 Kubernetes 노드의 프로비저닝과 수명주기를 자동으로 관리하는 오픈소스 프로젝트다. 원래 AWS에서 시작했지만, 현재는 kubernetes-sigs 산하의 클라우드 중립 Core와 클라우드별 Provider로 분리되어 있다. AWS(EKS)와 Azure(AKS)에서 공식 지원한다.

Read full post gdoc_arrow_right_alt