Pod生命周期
我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:
- Pause容器(pause )创建过程
- 运行初始化容器(init container)过程
- 运行主容器(main container)
- 容器启动后钩子(post start)、容器终止前钩子(pre stop)
- 容器的存活性探测(liveness probe)、就绪性探测(readiness probe)、启动探测(startupProbe)
- pod终止过程
在整个生命周期中,Pod会出现三种状态,分别如下:
- 等待(Waiting):如果容器并不处在
Running
或Terminated
状态之一,它就处在Waiting
状态。 处于Waiting
状态的容器仍在运行它完成启动所需要的操作:例如, 从某个容器镜像仓库拉取容器镜像,或者向容器应用 Secret 数据等等。 当你使用kubectl
来查询包含Waiting
状态的容器的 Pod 时,你也会看到一个 Reason 字段,其中给出了容器处于等待状态的原因。 - 运行中(Running):
Running
状态表明容器正在执行状态并且没有问题发生。 如果配置了postStart
回调,那么该回调已经执行且已完成。 如果你使用kubectl
来查询包含Running
状态的容器的 Pod 时, 你也会看到关于容器进入Running
状态的信息。 - 已终止(Terminated):处于
Terminated
状态的容器开始执行后,或者运行至正常结束或者因为某些原因失败。 如果你使用kubectl
来查询包含Terminated
状态的容器的 Pod 时, 你会看到容器进入此状态的原因、退出代码以及容器执行期间的起止时间。如果容器配置了preStop
回调,则该回调会在容器进入Terminated
状态之前执行。