2022-05-27 k8s部署springboot 不执行@P

2022-05-27  本文已影响0人  江江江123

简单说下我出现的原因
首先 dockerfile

COPY start.sh start.sh
EXPOSE 9083

#CMD ["java", "-jar", "job-service-SNAPSHOT.jar"]
ENTRYPOINT ["sh", "start.sh"]

造成的主要原因就是 我用start.sh启动

#!/bin/bash
java $JAVA_OPTS -Dspring.profiles.active=$MY_PROFILES_ACTIVE_PATH -jar job-service-SNAPSHOT.jar

在这种情况无论我怎么添加优雅退出,都不会执行@PreDestroy

直到阅读一篇博客如何在kubernetes中优雅停机

kuectl exec -it pod -n namespace -- /bin/sh
ps -ef
result.png

顿时悟了,原来k8s优雅关闭了 sh,并没有关闭我的Jar,终于从自我怀疑中解脱了。
由于我的业务比较简单,所以没有文中的第二种解决方案
只用了简单的方案,修改start.sh

#!/bin/bash
exec java $JAVA_OPTS -Dspring.profiles.active=$MY_PROFILES_ACTIVE_PATH -jar job-service-SNAPSHOT.jar

问题解决!

上一篇下一篇

猜你喜欢

热点阅读