Node Lifecycle Management
Junseok Oh
Sr. Solutions Architect
Amazon Web Services
Block 2 · 같은 “노드 종료”라도 확인할 원인은 다릅니다
Pod를 다른 곳에 배치할 수 있어
불필요한 노드를 줄이는 과정입니다.
원하는 설정과 현재 노드가 달라
새 노드로 교체하는 과정입니다.
expireAfter에 도달해
노드 교체를 시작하는 경우입니다.
EC2가 Spot 인스턴스를 회수합니다.
PDB로 회수를 막을 수는 없습니다.
Requests = 스케줄링 예약 · Usage = 실제 사용량 · 임계값은 교육용 예시
| 노드 | 상태 | 유형 | Requests | Usage |
|---|
낮은 사용량만으로 노드를 삭제하지 않습니다. 아래 버튼은 개념을 설명하는 시뮬레이션입니다.
명령어를 외우기보다, 결과에서 확인할 질문을 기억하세요
Events에 FailedScheduling이 있으면 CPU·메모리 요청량, taint, 배치 조건부터 확인합니다.
이미 노드에 배치됐다면 이미지 다운로드·볼륨·앱 시작 문제도 확인합니다. Pending이 곧 노드 부족은 아닙니다.
NodeClaim의 Conditions·Events에서 생성, 등록, 준비 단계가 어디까지 진행됐는지 확인합니다.
NodePool·NodeClass 조건이 맞는지, IAM·subnet·EC2 용량에 문제가 있는지 이벤트를 보고 좁힙니다.
같은 노드·같은 시간의 교체 이벤트를 앱 장애 시각과 비교합니다.
NodeClaim 이벤트만으로 부족하면 관련 Node·Pod 이벤트도 확인합니다. 종료 원인은 메트릭 하나로 단정하지 않습니다.
<pod>, <namespace>, <nodeclaim>은 실제 이름으로 바꿉니다. 명령은 조회용입니다.
노드 수·대기 Pod·Spot 비율·시작 지연 · 표시 수치는 예시
노드 수 변화는 “무슨 일이 생겼나”의 시작점입니다. 원인은 이벤트와 함께 봅니다. (node 라벨 allowlist 필요)
전체 Pending Pod 수. 이미 스케줄된 시작 대기 Pod도 포함하며 Unschedulable과 구분합니다.
Spot 중단 시 영향을 가늠하는 보조 지표입니다. Pod 개수가 아닌 노드 수의 비율입니다. (라벨 allowlist 필요)
직접 설치한 Karpenter Controller 수집 필요, Summary 타입이라 quantile label로 조회 · Pod 시작 시간이며 Node Ready 시간과 다름
Pod 종료 처리와 대체 노드 준비를 함께 시작합니다
EC2 Spot interruption notice → EventBridge → SQS → Karpenter Controller. 직접 설치한 환경은 interruption queue 구성이 필요하고, Auto Mode는 AWS가 관리합니다.
이 예시는 stop/terminate 회수 통지입니다. 통상 2분 전 알림이지만 새 노드와 앱의 준비 완료를 보장하지 않습니다. hibernate는 2분 유예 없이 시작됩니다. PDB는 EC2 회수 기한을 늘리지 못합니다.
버퍼 용량은 노드 대기를 줄이지만, 그만큼 비용이 듭니다
빈자리를 낮은 우선순위 Pod가 차지합니다. 실제 앱이 더 높은 우선순위이고 배치 조건이 맞으면 자리를 내줍니다.
직접 설치한 Karpenter는 여유 용량을 선언하는 API도 제공합니다. v1.14에서 v1beta1로 승격됐고, v1.15.0에서도 CapacityBuffer feature gate(alpha, 기본 꺼짐)로 켭니다.
CRD·적용 범위 확인 · Auto Mode의 지원을 의미하지 않습니다.
코드 안에서 스크롤해 전체 설정을 확인하세요.
노드 수명, 종료 유예, 서비스 상한을 구분하세요
Auto Mode 기본 노드 만료 설정.
더 짧게 정할 수 있습니다.
미지정 시 NodeClaim에 적용되는 기본값.
노드 종료가 시작된 뒤의 유예입니다.
14일과 24시간을 더한 값이 아닙니다.
노드를 유지하는 상한입니다.
기본 풀이 활성화되어 default NodeClass가 있는 환경의 커스텀 풀 예제입니다.
Drift·Spot 회수·노드 정리로 더 일찍 교체될 수 있습니다. PDB와 교체 예산이 모든 종료를 막는 것은 아닙니다.
AMI rev A → AMI rev B · 각 단계 버튼으로 Pod 이동 과정 확인
kube-state-metrics 기반 공통 알림 · 임계값은 예시, Spot 원인은 이벤트로 확인
EKS Auto Mode 운영 준비 상태 점검
한 상황씩 선택하고 진단 이유를 설명해 보세요