← 문제 라이브러리
K8s 중급 18분

노드 디스크 압박으로 파드가 무더기 Evicted

오전부터 노드 두 대에서 파드 수십 개가 Evicted 상태로 쌓이고, 새 파드가 다른 노드로 옮겨지면서 클러스터 전체가 빡빡해졌습니다.

검수된 문제무료
시나리오

오전부터 노드 두 대에서 파드 수십 개가 Evicted 상태로 쌓이고, 새 파드가 다른 노드로 옮겨지면서 클러스터 전체가 빡빡해졌습니다. 온콜 담당자는 Evicted 파드를 지웠지만 한 시간 뒤 또 쌓입니다. 어제 결제 API 장애를 조사하느라 디버그 로그를 켜 두었는데 아직 끄지 않았습니다. 이 앱은 로그를 표준 출력이 아니라 컨테이너 안 파일(/var/log/app)에 씁니다. 팀장은 노드를 더 붙이자고 합니다. 쫓겨난 파드 중에는 디버그 로그와 상관없는 서비스도 섞여 있습니다.

단서
kubectl describe pod (Evicted 된 파드 중 하나)
Status:   Failed
Reason:   Evicted
Message:  The node was low on resource: ephemeral-storage. Threshold quantity: 10%, available: 7%. Container payment-api was using 18Gi, request is 0, has larger consumption of ephemeral-storage.
노드 상태 · 앱 설정
$ kubectl describe node node-b2 | grep -A1 DiskPressure
  DiskPressure   True   KubeletHasDiskPressure   kubelet has disk pressure

# payment-api env
LOG_LEVEL=debug
LOG_FILE=/var/log/app/payment.log

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • Evicted 메시지가 말하는 부족한 자원
  • 쫓겨나는 파드와 원인이 된 파드 구분하기
점검 체크리스트
  1. Evicted 파드의 Message(어떤 자원이 부족했나)
  2. 노드의 DiskPressure 상태
  3. ephemeral-storage를 많이 쓰는 컨테이너와 그 이유(로그·임시 파일)