Kubernetes 노드 OOMKill 연쇄 장애 원인 분석 AI 생성 이미지: Kubernetes 노드 OOMKill 연쇄 장애 원인 분석 문제 정의 — 노드 OOMKill 연쇄 장애란 무엇인가 노드 OOMKill 연쇄 장애는 커널의 OOM(Out-Of-Memory) 킬러가 한 노드에서 여러 프로세스(컨테이너)를 연달아 종료하면서 확산되는 장애를 말한다. 초기 징후로는 컨테이너 상태가 OOMKilled로 표시되고, kubelet의 메모리 압박(eviction) 로그, 노드 상태 NotReady, 스케줄러 재스케줄링 증가 등이 관찰된다. 원인 분석 시에는 컨테이너와 호스트 수준의 메모리 지표를 함께 살펴야 한다. 이 글은 Kubernetes 노드 OOMKill 연쇄 장애 원인 분석에 실무적으로 접근하는 방법을 제공한다. 영향: 서비스 불능, 상태 저장 워크로드의 데이터 손실, 반복적인 리더 선출, SLO 위반과 갑작스러운 용량 감소. 발생 빈도: 자주 발생하지는 않지만 메모리 과대예약, 메모리 누수, 배치 작업의 동시 실행, 노드 업그레이드 등으로 증폭되어 엔터프라이즈 환경에서는 비교적 자주 재현될 수 있다. 엔터프라이즈 위험성: 멀티테넌시 환경에서 블라스트 반경이 커지고 가시성 확보와 원인 규명이 어려워 복구에 시간이 걸리며 비즈니스 영향이 커진다. 실무 체크리스트: 우선 노드 전체 메모리 사용량과 kubelet eviction 로그를 확인하고, 각 컨테이너의 requests/limits 설정과 최근 배포·업그레이드 내역을 점검하라. Linux OOM Killer의 동작 원리와 메모리 관리 기본 커널은 페이지 회수와 스왑으로 메모리 요청을 처리합니다. 이들 방법으로도 회수가 실패하거나 메모리 할당이 거부되면 시스템은 OOM(Out Of Memory) 상황으로 판단하고 OOM Killer를 실행합니다. 각 프로세스는 /proc/ /oom_score로 표현되는 기본 'badness' 점수를 가지며, 관리자...