✋ k8s 에서 Springboot Graceful Shutdown 방법

처음 Kubernetes 를 공부하고 적용해보기 시작했을 때,

무중단 배포의 필수조건인 Graceful Shutdown 을 하려면 어떻게 해야할까를 고민한적이 있었습니다.


어설프게 알고 있던 지식을 활용하여

Readness Probe 와 Spring Actuator 를 활용하여 Custom Health Indicator 를 구현하고

preStop 훅을 통해 Application 상태를 변경하여 Service 에서 제외시키면

Pod 가 종료되기 전에 요청이 들어오지 않는 상태로 바뀌기 때문에

Graceful Shutdown 을 할 수 있겠지? 라고 생각하며 나름 자신있게 정리했는데


막상 Spring 공식 문서를 보니 preStop 훅에 Sleep 을 걸어주는게 Best Practice 라는 내용을 보고 얼마나 허무했는지 모릅니다. 🥲


공식문서와 전체적인 개념을 제대로 보지 않고 어설픈 지식으로 해결하려다 생긴 해프닝이었는데요, (이때부터였어요.. 제가 공식문서에 집착하기 시작한게..)


왜 Sleep 만 걸어도 Graceful Shutdown 이 가능한지에 대해 간단히 정리한 내용을 공유드립니다.


Kubernetes 를 공부하신 분들이라면 대부분 아는 간단한 내용이지만,

그때 받았던 충격이 아직도 선명하여 기록으로 남겨보았습니다.


📚 원문

https://yang1s.tistory.com/33

[Kubernetes] k8s 환경에서 springboot graceful shutdown 방법

거북이 developer

[Kubernetes] k8s 환경에서 springboot graceful shutdown 방법

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 1월 29일 오전 7:15

 • 

저장 134조회 6,348

댓글 1