← 문제 라이브러리
K8s 입문 15분

OOMKilled: 큰 이미지가 몰릴 때마다 컨테이너가 재시작

상품 이미지를 줄여 주는 리사이즈 API가 판매자들이 사진을 올리는 오후 시간대마다 재시작을 반복합니다.

검수된 문제무료
시나리오

상품 이미지를 줄여 주는 리사이즈 API가 판매자들이 사진을 올리는 오후 시간대마다 재시작을 반복합니다. 재시작 순간에는 업로드가 실패해 판매자 문의가 쌓이고 있습니다. 새벽처럼 한가할 때는 멀쩡합니다. 최근 고화질 카메라 사진(4천만 화소 이상)을 올리는 판매자가 늘었습니다. 담당자는 liveness probe가 너무 빡빡해서 죽이는 것 같다며 probe 시간을 늘리자고 하고, 다른 사람은 메모리 누수를 의심합니다. 이번 주 판매 이벤트가 이어져 오후 업로드는 더 늘어날 예정입니다.

단서
kubectl describe pod resize-7d9f8c6b5-q2wlm (일부)
    Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    137
    Restart Count:  14
    Limits:
      memory:  512Mi
    Requests:
      memory:  256Mi
kubectl top · 앱 로그
$ kubectl top pod resize-7d9f8c6b5-q2wlm
NAME                       CPU(cores)   MEMORY(bytes)
resize-7d9f8c6b5-q2wlm     840m         497Mi

14:02:11 INFO  resize start image=8000x6000 (48MP) concurrent=3
# 이 줄 뒤로 로그 없음, 재시작 후 메모리는 120Mi 수준으로 돌아옴

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

먼저 볼 것
  • 종료 이유(OOMKilled, 137)가 뜻하는 것
  • 평소 사용량과 순간 최대 사용량 구분하기
점검 체크리스트
  1. kubectl describe pod 의 Last State Reason·Exit Code
  2. 메모리 limit과 실제 순간 사용량(top·지표)
  3. 죽기 직전 처리하던 작업(큰 입력·동시 처리 수)