一、序言
当你使用kuberentes的时候,有没有遇到过Pod在启动后一会就挂掉然后又重新启动这样的恶性循环?你有没有想过kubernetes是如何检测pod是否还存活?虽然容器已经启动,但是kubernetes如何知道容器的进程是否准备好对外提供服务了呢?让我们通过来一探究竟。首先pod在kubernetes中有5个状态,我们大体了解一下这5个状态,如下表:
名称 | 描述 |
Pending | 系统已经接受pod实例的创建,但其中所包含容器的一个或者多个image还没有创建成功。Pending包含调度计算与通过网络创建image,所以此phase的时间可能会有点长。 |
Running | Pod已经被调度到某个node上,pod包含的所有容器已经创建完成,至少有一个容器正常运行或者处于启动与重启动过程。 |
Succeeded | Pod中的所有容器正常终止,并且不会再次启动。 |
Failed | Pod中所有容器已终止运行,至少有一个容器非正常结束,比如退出码非零,被系统强制杀死等。 |
Unknow | 无法取得pod状态,一般是网络问题引起。 |
我们可以通过kubectl describe pods {podName}来查看status状态,了解到pod状态以后,达到这个状态的过程是如何呢?pod的生命周期到底是如何的呢?我们下面