执行`kubectl rolling-update`时pod会收到什么进程信号?

时间:2015-10-03 04:17:45

标签: docker signals kubernetes google-kubernetes-engine

当kebernetes在谷歌容器引擎上进行滚动更新时,我正在使用go lang进行优雅的关闭功能。当kubectl滚动更新开始时,有谁知道将哪些过程信号发送到正在运行的pod?

我听过os.Kill,os.Interrupt,syscall.SIGTERM,syscall.SIGKILL,syscall.SIGSTOP要处理的信号,在kubectl滚动更新时没有提出这些信号。

我非常感谢您的回答。

1 个答案:

答案 0 :(得分:2)

我有一个解决方案!我使用shell脚本文件作为ENTRYPOINT并在该脚本文件中执行二进制文件。因此,执行的二进制文件的进程ID不是1.(shell脚本进程的ID为1)而docker仅将SIGTERM发送到PID 1(不会传播到它的子进程)。所以,我不得不将我的ENTRYPOINT直接更改为执行二进制文件,现在我的go代码中有SIGTERM。请参阅此link