【发布时间】:2018-10-29 16:03:21
【问题描述】:
我正在使用最简单的 docker:
FROM ubuntu
COPY script.sh /script.sh
CMD /script.sh
所有脚本的作用是:
#!/bin/bash
function sigterm() {
echo "Got SIGTERM"
exit
}
trap sigterm SIGTERM
i=1
while true; do
echo "$(date +%H:%M:%S) | $((i++)) | $HOSTNAME"
sleep 1
done
我在 Minikube 中运行这个容器,但我无法让它从 kubernetes 中捕获任何 SIGTERM。
我尝试删除 pod/部署或对其进行放大和缩小。在任何情况下,它在被删除之前都没有得到 SIGTERM。它尊重terminationGracePeriodSeconds 但似乎没有运行preStop 命令或在杀死pod之前发送SIGTERM。
是因为使用了 minikube 吗?还是我做错了什么?
(部署不是服务的一部分,它只是一个部署)
(SSH 进入 pod 并手动 kill-ing 它按预期工作)
【问题讨论】:
标签: bash kubernetes minikube termination