Web/SpringBoot

[springboot] healthcheck ,actuator, kubernetes 헬스 체크 하여 pod 롤링 업데이트 403 에러 - 2/2

벨포트조던 2019. 11. 18.
반응형

환경

- springboot 2.1 

- kubernetes 로 마이크로서비스로 서버 운영

- docker

 

[springboot] healthcheck ,actuator, kubernetes 헬스 체크 하여 pod 롤링 업데이트 502 에러 - 1/2
https://wfreud.tistory.com/338  

 

첫번째 포스팅에서 502를 없앴다.

근데 403 발생 

 

이유는 여기서 찾았다.

https://craftsmen.nl/docker-swarm-persistent-connections-and-spring-boot-graceful-shutdown/

간단하게 말하면 java와 롤링업데이트가 충돌한다 이런건데 

해결법은 gracefulshotdown 또는 keepalive를 끄는거라고 한다.

 

keepalive false로 만드는건 해봤는데 안되는거같다. 내가 설정을 잘못했을수도 있긴함.

성능상의 문제도 있고, 안되는 문제도 있어서, gracefulshotdown 을 사용했다.

 

여기서 알게된거는 docker가 pod를 종료해도, 강제종료가 아닌 graceful을 타고 종료된다.

 

해당 위에 url은 설명은 잘되있는데, 코드가 옛날 코드이다. 그래서 java import가 잘안된다.

아래 참고 grace나 검색해서 코드 찾아서 넣자 

 

 

graceful 참고

https://daddyprogrammer.org/post/2445/springboot2-blue-green-deploy-nginx/

이거 좋음

https://heowc.dev/2018/12/27/spring-boot-graceful-shutdown/

https://silvernine.me/wp/?p=1022 

이거는 사용할라다가 깜박하고 안함. 바뻐서 스킵

http://egloos.zum.com/javalove/v/1216827

https://github.com/spring-projects/spring-boot/issues/4657

https://blog.marcosbarbero.com/graceful-shutdown-spring-boot-apps/

 

이렇게 해서 403 에러가 해결됨

 

다만.... 현재 환경에서 서버재시작 3~5번중 한건씩 502가 발생한다. 이건 서버문제인지 자바문제인지 nginx문제인지 콩문제인지 못찾음 

 

일단 이정도로 완료

반응형

댓글