k8s pod状态有哪些
在 Kubernetes 中,Pod 的状态(Pod phase)是对其生命周期的简单宏观概述,反映了 Pod 在其生命周期中的不同阶段。以下是 Pod 的可能状态及其描述:
-
Pending(挂起):Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。这包括等待 Pod 被调度的时间和通过网络下载镜像的时间 。
-
Running(运行中):Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态 。
-
Succeeded(成功):Pod 中的所有容器都已成功终止,并且不会再重启 。
-
Failed(失败):Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止,且未被设置为自动重启 。
-
Unknown(未知):因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败 。
除了这些基本状态,Pod 还有一些特殊的条件状态,它们记录了 Pod 的一些细节信息,例如 Pod 是否处于调度中、容器镜像是否拉取成功等。这些条件状态包括但不限于:
- PodScheduled:Pod 已经被调度到某节点。
- ContainersReady:Pod 中所有容器都已就绪。
- Initialized:所有的 Init 容器都已成功完成。
- Ready:Pod 可以为请求提供服务,并且应该被添加到对应服务的负载均衡池中 。
此外,Pod 中的容器可以处于以下状态:
-
Waiting(等待):如果容器并不处在 Running 或 Terminated 状态之一,它就处在 Waiting 状态。处于 Waiting 状态的容器仍在运行它完成启动所需要的操作,例如从某个容器镜像仓库拉取容器镜像 。
-
Running(运行中):Running 状态表明容器正在执行状态并且没有问题发生 。
-
Terminated(已终止):处于 Terminated 状态的容器开始执行后,或者运行至正常结束或者因为某些原因失败 。
还有一些特殊状态,如 CrashLoopBackOff,表示 Pod 不断崩溃并重启,进入了“崩溃循环”。这通常是由于容器启动后立即崩溃,并且根据重启策略不断重启 。