K8S之pod生命周期
Pod的生命周期是通过Replication Controller来管理的。Pod的生命周期过程包括:通过模板进行定义,然后分配到一个Node上运行,在Pod所含容器运行结束后Pod也结束。在整个过程中,Pod处于一下4种状态之一:
- Pending:Pod定义正确,提交到Master,但其所包含的容器镜像还未完成创建。通常Master对Pod进行调度需要一些时间,之后Node对镜像进行下载也需要一些时间;正在初始化中的Pod处于Pending状态
- Running:Pod已被分配到某个Node上,且其包含的所有容器镜像都已经创建完成,并成功运行起来;
- Succeeded:Pod中所有容器都成功终止,并且不会被重启,这是Pod的一种最终状态(所有容器都以“0”的状态退出);
- Failed:Pod中所有容器都结束了,至少有一个容器以非0状态退出。
- Unknown:因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败。
Kubernetes为Pod设计了一套独特的网络配置,包括:为每个Pod分配一个IP地址,使用Pod名作为容器间通信的主机名等。关于Kubernetes网络的设计原理将在第2章进行详细说明。
另外,不建议在Kubernetes的一个Pod内运行相同应用的多个实例。