上节课我们创建了一个pod,成功启动了他。本章节我们来继续了解一下创建pod的其他功能。
上节课在第一次拉取镜像的时候,出现了一个报错ImagePullBackOff ,如果继续等待,可能会变成ErrImagePull,在调整了镜像地址重新拉取之后,状态又变成了Running,这告诉我们,在创建Pod的时候,是有多种状态的。这就叫做pod的生命周期。
Pod的生命周期
Kubernetes (k8s) 的 Pod 生命周期管理是其核心功能之一,它涉及到 Pod 从创建到终止的整个过程。理解 Pod 的生命周期对于有效地管理和维护 Kubernetes 集群至关重要。以下是一个 Pod 生命周期的基本概述:
1. 创建阶段
当你在 Kubernetes 集群中创建一个 Pod 时,它会经历以下阶段:
-
Pending:Pod 已被 API Server 接受,但容器镜像尚未被完全拉取或调度到某个节点上。
-
Running:Pod 已经被调度到某个节点上,并且至少有一个容器正在运行。
2. 运行阶段
一旦 Pod 进入运行状态,它可能会经历以下几种状态:
-
Running:Pod 正在运行。如果 Pod 中有多个容器,其中一个或多个容器处于运行状态,Pod 也会处于此状态。
-
Waiting:Pod 正在等待某些条件(如启动探针检查)满足。
-
Succeeded:所有容器都已成功终止,并且不会再重启。
-
Failed:所有容器都已终止,且至少有一个容器因为失败而退出。
3. 终止阶段
Pod 可能因为多种原因被终止,包括但不限于手动删除、自动缩放、系统维护等:
-
Terminating:Pod 正在被终止过程中。此时,Pod 会尝试优雅地关闭容器,即在关闭之前执行清理操作。
-
Completed:Pod 中的所有容器都已成功完成执行并被删除。这个状态通常出现在一次性任务(如 Job)完成后。
-
Unknown:由于某些原因(如节点宕机),Pod 的状态无法被 kubelet 报告。