我遇到了一个问题。在manifest文件中有preStop选项,并且发生了OOMKilled。pod被重新启动,但没有创建堆转储。
生命周期:preStop:执行:命令:["/tmp/preStop.sh“]
heapdump在我手动终止pod时工作。
所以我想知道,如果pod重新启动,preStop不应该被执行?
我想当pod重启时,首先向应用程序发送TermSignal并执行preStop,然后终止并重新启动pod。我错了吗?
谢谢最好的问候。
我遇到了一个问题。在manifest文件中有preStop选项,并且发生了OOMKilled。pod被重新启动,但没有创建堆转储。
生命周期:preStop:执行:命令:["/tmp/preStop.sh“]
heapdump在我手动终止pod时工作。
所以我想知道,如果pod重新启动,preStop不应该被执行?
我想当pod重启时,首先向应用程序发送TermSignal并执行preStop,然后终止并重新启动pod。我错了吗?
谢谢最好的问候。
1条答案
按热度按时间pvabu6sv1#
当pod重启时,首先向应用发送TermSignal,然后执行preStop,然后终止并重新启动pod,我说的对吗?
根据官方文件
PreStop
钩子不会与停止Container的信号异步执行;钩子必须在发送TERM信号之前完成其执行。如果
PreStop
hook在执行过程中挂起,Pod的phase将为Terminating,并一直保持到Pod在terminationGracePeriodSeconds
到期后被kill。此宽限期适用于PreStop hook执行和Container正常停止的总时间。希望以上信息对您有用。