库伯奈特斯在倒数replicaSet时使用术语信号。
这对我的申请来说太危险了。
我使用Tomcat应用服务器,这个应用服务器有自己的关闭机制来终止应用服务器。
当我发送操作系统(Linux)信号时(9,15,.)对于jvm,JVM不知道jvm中的线程如何处理,所以线程在成功完成之前就被杀死了。
Request -----> BackEnd API -----> [Process] -----> Response
^
Send TERM (Signal) while thread doing Process
有没有办法改变库伯奈特集装箱停运机制?
我要库伯奈特斯使用:
catalina.sh stop
发布于 2021-02-01 15:16:31
Kubernetes生命周期是解决以下问题的好方法:
发布于 2021-01-30 16:02:31
做这件事的方法应该是哑口无言。
建造容器,哑巴-init通常是一个很好的做法,处理僵尸等。在您的情况下,它还允许重新映射信号。
在您的Dockerfile中,您可能有如下所示
CMD ["dumb-init", "--rewrite", "15:28", "/app/start.sh"]
请与kill -l
核对,SIGINT
应该是15
号。
然后,在开始脚本中,您可以捕获SIGWINCH
(28
)信号:
#!/bin/sh
trap "cd /app ; catalina.sh stop" SIGWINCH
[your startup script]
exec $JAVA_HOME/bin/java ...
编辑,正如我所看到的,另一个答案被接受了:当然,容器生命周期挂钩可能听起来不错。
一方面,它们在这里已经有一年了:根据集群版本的不同,它们可能无法使用。
然后,您会发现它们只在API驱动的终端上运行,这可能是一个问题。
https://unix.stackexchange.com/questions/631772
复制相似问题