【发布时间】:2021-12-28 14:42:26
【问题描述】:
我在 k8s 中有一个多容器 pod,我们称它们为 A 和 B。停止 pod 时,A 必须在 B 之前停止,因为 A 需要 B 直到它关闭。
为此,我在 A 上注册了一个 preStop 挂钩,以便 A 可以在 B 之前优雅地停止。
但是我不确定这是一个好的解决方案,因为我错过了一些在 k8s 文档中找不到的信息:
当多容器 pod 停止时会发生什么?
- 调用所有容器
preStop钩子,然后当它们全部完成时,所有容器接收SIGTERM,或者 - 并行地,如果所有容器都有
preStop,如果没有,则直接接收SIGTERM?
在第二种情况下,preStop 对我想做的事情毫无用处,因为 B 会被立即杀死。
【问题讨论】:
-
应该不是反过来吧,B应该有一个preStop hook来检查a是否宕机?
标签: kubernetes kubernetes-pod termination