删除Pod时,未完成startUpProbe的NOT_READY容器是否会收到SIGTERM信号?
问题(翻译后)
假设我的Pod中有10个容器,其中3个配置了startUpProbe(启动探针)。若在探针成功完成前(即这些容器处于NOT_READY状态)删除该Pod,按预期删除Pod应向所有容器发送SIGTERM信号以优雅终止,请问这3个未完成探针的容器是否会收到SIGTERM信号?
答案
会收到。
Kubernetes在处理Pod删除操作时,不会区分容器是否通过了startUpProbe或处于就绪状态——只要容器处于运行中状态,kubelet就会向它发送SIGTERM信号,触发优雅终止流程。
具体执行逻辑:
- 当Pod被标记为删除后,kubelet会立即向Pod内所有正在运行的容器发送SIGTERM信号。
- 随后进入优雅终止等待期(默认30秒,可通过Pod的
terminationGracePeriodSeconds字段自定义时长),等待容器自行退出。 - 若等待期结束后容器仍未正常退出,kubelet会发送SIGKILL信号强制终止容器进程。
需要明确的是,startUpProbe仅用于判断容器是否完成启动初始化,它只会影响容器的就绪状态标记,以及Pod是否被纳入服务的流量转发范围,不会干预Pod删除时的容器终止流程。哪怕容器还处于startUpProbe的检查重试阶段,只要进程还在运行,就会收到SIGTERM信号。
内容的提问来源于stack exchange,提问作者sethu ram
相关产品推荐
相关产品推荐

