AWS KCL捕获docker中的关闭信号

时间:2018-03-31 00:29:07

标签: docker kubernetes amazon-kcl

当我在终端上以./bin/kcl-bootstrap -p app.properties -j /usr/bin/java -e运行KCL时,我做了ps -ef | grep java并得到了它的pid。我发布了kill -s TERM $PID_ABOVE。我注意到节点recordProcessor设法像这样记录 2018-03-31T11:13:46.998 INFO recordProcessor - Shutdown requested 2018-03-31T11:13:48.024 INFO recordProcessor - Shutting down...

当我通过docker run命令运行等效命令时 docker run -v /tmp:/tmp -v ~/.aws:/root/.aws -ti cde3946e2cf9 Ctrl-C发布docker stop cde3946e2cf9docker kill --signal=SIGTERM cde3946e2cf9Process terminanted, will initiate shutdown.以终止泊坞广告并未导致上面生成的日志。例如,recordProcessor没有收到有关关闭请求的通知。

我们的docker部署在Kubernetes集群中,当我们重新部署docker时,我可以看到主处理器正在记录this.range,但是报告的工作人员关闭请求没有任何内容。

我想在重新部署docker时捕获这些事件,以确保我们正常处理shutdown。

任何人都知道如何确保在群集中重新部署docker时工作人员会收到通知吗?

由于

1 个答案:

答案 0 :(得分:1)

对于任何面临类似问题的人,以下是我解决的问题:

在kubernetes模板中添加preStop挂钩以执行shell命令 命令为kill -s TERM $(ps -ef | grep "MultiLangDaemon" | grep -v \"grep\" | awk '{print $1}')