목록 보기
K8s에서 Java Heap Dump 저장하고 내려받기 개선
데브옵스

K8s에서 Java Heap Dump 저장하고 내려받기 개선

SSG.COM
SSG.COM
2023년 7월 14일

두줄요약

Kubernetes 환경에서 OOM 힙덤프가 사라지지 않도록 PV와 NFS로 보관 구조를 개선했습니다. 또한 Rclone과 MinIO를 활용해 웹 UI로 쉽게 내려받을 수 있게 했습니다.

문제 상황

  • Kubernetes 환경의 JVM 애플리케이션에서 OOM 발생 시 힙덤프가 POD 내부에만 남아 분석 시점에 사라질 수 있는 문제
  • kubectl cp로 직접 내려받아야 해서 수집 경로와 운영 부담이 큰 상태

원인 분석

  • emptyDir 같은 임시 볼륨은 POD 생명주기와 함께 소멸
  • hostPath는 노드 종속성 때문에 POD가 다른 노드로 이동하면 접근성과 관리성이 떨어짐
  • 덤프 파일을 별도 저장소로 옮기고 내려받는 수단이 추가로 필요

해결 방법

  • PV와 NFS를 사용해 덤프 파일을 POD 생명주기 밖에서 보관할 수 있게 구성
  • Java 옵션으로 OOM 시 힙덤프를 지정 경로에 생성하고, Deployment에 PVC 마운트 적용
  • Rclone 기반 dump collector를 두어 PV의 덤프를 MinIO로 주기적 전송

성능/운영 포인트

  • MinIO UI를 통해 Web UI 방식의 손쉬운 다운로드 제공
  • hostPath보다 중앙화된 보관으로 관리성 향상
  • dump collector를 단순 스크립트와 재시도 기능으로 운영 부담 최소화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...