kubernetes经典面试题:简述Pod生命周期

在之前的文章中介绍了k8s创建Pod流程,主要介绍了k8s如何通过编排和调度启动一个Pod。

这篇文章我们从Pod的角度看,一个Pod从启动到终止经过了的流程,下图展现了一个Pod从启动到结束经过的中间过程以及执行相应的钩子函数。在业务容器启动之前首先会运行Initcontainer容器,initcontainer是串行执行的,负责容器初始化的一些操作。


kubernetes经典面试题:简述Pod生命周期

当所有的initcontainer执行完后,会逐个启动业务容器容器,业务容器启动成功后,kubelet只能知道容器已经处于运行状态,但容器里面运行应用的真实状态就不得而知了。为此kubelet引入了探针机制,通过HTTP/TCP/EXEC的方式检测容器里面业务是否启动。

另外还有两个Hook:容器启动之后PostStart和容器关闭之前PreStop。由于PostStart和容器ENTRYPOINT是并发执行,Kubelet并不能保证PostStart一定是在ENTRYPOINT之后执行,但如果PostStart一直无法结束运行,那么Pod将无法进入Running状态,所以PostStart通常可以在短时间内完成任务,不会驻留太长时间。PreStop则不同,它是一定在容器关闭之前执行。Pod首先会执行PreStop钩子函数,在PreStop执行完成后,才会继续执行优雅关闭操作。如果PreStop在优雅关闭时间(默认30s)之内无法完成时,将强制停止,并将优雅关闭时间设置成2s,继续执行之后的优雅关闭操作。

展开阅读全文

页面更新:2024-04-16

标签:钩子   探针   下图   不得而知   初始化   容器   生命周期   函数   之内   优雅   流程   状态   结束   操作   业务   时间   经典   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top