환경
- 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문제인지 콩문제인지 못찾음
일단 이정도로 완료
'Web > SpringBoot' 카테고리의 다른 글
[kafka] spring boot consumer config 설정, client 입력 (0) | 2019.11.27 |
---|---|
Configure Pod readiness with Spring Actuator (0) | 2019.11.20 |
Spring Transaction rollback 이 안됨 (1) | 2019.11.08 |
[springboot] healthcheck ,actuator, kubernetes 헬스 체크 하여 pod 롤링 업데이트 502 에러 - 1/2 (0) | 2019.10.30 |
[springboot] 서버 시작시 Error creating bean with name '***' defined in class path resource 해결법 (0) | 2019.08.28 |
댓글