개요
본 문서는 SpringBoot에서 ApplicationAvailability Interface를 주입하여 SpringBoot에서 Livness|ReadinessProbes에 응답하도록 구성한 내용을 다루고 있습니다.
Liveness, Readiness, StartupProbes 도입이유
서비스 개발 중인 dev 망에서
EKS Secrets의 환경변수가 누락되거나 잘못된 경우 SpringBoot Application이 가동되고 30~60초 후에 다운되는 이슈가 있었습니다. 그런데 처음에는 Application이 켜졌기 때문에 Deployment Rollout이 일어났으며 Pods가 죽어버리는 장애가 발견되었습니다.
문제를 해결하기 위해서 각 노드에 배포된 kubelet이 pods에 대한 상태확인을 위해 사용하는 LinvessProbes, ReadinessProbes, StartupProbes를 알게 되었습니다.
PoC 진행 이후,
Deployment Rollout 및 Pods의 자가 복구 등 서비스 안전성에 필요한 기능이라고 판단되어 도입하기로 결정하였습니다.
Share article