pod退出过程和preStop

1, 用户发送删除pod的指令.

2, API-Server服务器中的pod对象会随着时间的推移而更新,在宽限期内 terminationGracePeriodSeconds: 30 ; 默认是30秒, Pod 被视为dead.

3,  将pod标记为Terminating状态。

4,(与第3步同时运行),kubelet 在监控到pod对象转为Terminating状态的同时启动Pod关闭过程。

5, (与第3步同时运行) Endpoint控制器监控到Pod对象的关闭行为时将其从所有匹配到此端点的Service资源的端点列表中移除。

6, 如果当前pod对象定义了preStop勾子句柄,在其标记为Terminating后 即会以同步方式启动执行, 如若宽限期结束后,preStop仍未执行完,则从新执行第2步并额外获取一个时长为2秒的小宽限期。

7,Pod对象中的容器进程收到TERM信号。

8,宽限期结束后,若存在任何一个仍在运行的进程,Pod对象即会收到SIGKILL信号。

9,Kubelet请求API-Server将此Pod资源的宽限期设置为0 从而完成删除操作,它变得对用户不再可见。

--

 pod 状态变为Terminating, kubelet启动关闭过程,Endpoint移除pod, 同时执行preStop里的指令。

---- 

参考:https://blog.csdn.net/weixin_38889300/article/details/120520753

posted @ 2024-03-31 10:49  lavida2000  阅读(108)  评论(0)    收藏  举报