ad

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_8.1.7 Pod 生命周期

admin 152 2023-10-25

【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第8章,第1节,由陆平、左奇、付光和张晗等编著。

8.1.7 Pod 生命周期

1.容器状态

Pod 状态就是一组容器状态的体现和概括,容器的状态变化会影响 Pod 的状态变化, 并触发Pod 的生命周期状态发生变化。

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_8.1.7 Pod 生命周期

使用docker run运行容器时,首先会下载镜像,成功后开始运行容器;当容器运行结 束并退出后,容器终止,这是一个完整的生命周期过程。 Kubernetes对 Pod 的完整生命周 期状态进行了记录,每个状态所含的信息如下:

1)Waiting: 容器正在等待创建,如正下载镜像。

■ reason: 等待的原因。

2)Running: 容器已经创建,正运行。

■ startAt: 容器创建时间。

3)Terminated: 容器终止退出。

■ exitCode: 退出码。

■ signal: 容器退出信号。

■ reason: 容器退出原因。

finishedAt: 容器退出时间。

containerID: 容器的ID。

Pod 运行后,可以通过Pod 查询接口来查询容器的状态。命令如下:

#Kubectl describe pod my pod

2.Pod 生命周期

Pod 被分配到 一个Node 上之后,直到被删除前都不会离开这个Node。 一 旦 某 个Pod 失败, Kubernetes 会将其清理,然后Replication Controller 将会在其他机器上(或本机)重 建 Pod。 重建后, Pod 的 ID 将发生变化,这便是 一个新的Pod。 因 此 ,Kubernetes 中 Pod 的迁移实际是在新Node 上重建 Pod。

Pod 的生命周期可以简单描述为:首先Pod 被创建,紧接着Pod 被调度到 Node 上进行 部署运行。 Pod 一 旦被分配到Node 后就不会离开这个Node, 直到它被删除,即生命周期 完结。

Pod 的生命周期被定义为以下几个相位:

■ Pending:Pod 已经被创建,但是一个或者多个容器还未创建,这包括Pod 调度阶 段,以及容器镜像的下载过程。

Running:Pod 已经被调度到Node, 所有容器已经创建,并且至少一个容器在运行

或者正在重启。

■ Succeeded:Pod 中所有容器正常退出。

■ Failed:Pod 中所有容器退出,至少有一个容器是一次退出的。 可以通过以下命令查询 Pod 处于生命周期的哪个阶段:

$ kubectl get pods my-app --template="{{.status.phase}}"

Running

Pod 被创建成功后,首先会进入Pending 阶段,然后被调度到某Node 节点后运行,进 入Running 阶段。如果Pod 中的某容器停止(正常或者异常退出),那么 Pod 会根据重启策 略的不同进入不同的阶段,举例如下:

1)Pod 是 Running 阶段,含有一个容器,容器正常退出:

■ 如果重启策略是Always, 那么会重启容器, Pod 保持 Running 阶段。

■ 如果重启策略是 OnFailure,Pod 进入 Succeeded 阶段。

■ 如果重启策略是Never,Pod 进入 Succeeded 阶段。

2)Pod 是 Running 阶段,含有一个容器,容器异常退出:

■ 如果重启策略是 Always, 那么会重启容器, Pod 保持 Running 阶段。

■ 如果重启策略是 OnFailure,Pod 保持 Running 阶段。

■ 如果重启策略是Never,Pod 进入 Failed 阶段。

3)Pod 是 Running 阶段,含有两个容器,其中一个容器异常退出:

■ 如果重启策略是 Always, 那么会重启容器, Pod 保 持 Running 阶段。

■ 如果重启策略是 OnFailure,Pod 保持 Running 阶段。

■ 如果重启策略是Never,Pod 保持Running 阶段。

4)Pod 是 Running 阶段,含有两个容器,两个容器都异常退出:

■ 如果重启策略是Always, 那么会重启容器, Pod 保持 Running 阶段。

■如果重启策略是 OnFailure,Pod 保持 Running 阶段。

■ 如果重启策略是Never,Pod 进入 Failed 阶段。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.2.2 数据的级联
下一篇:从《Python数据分析案例教程》中_领悟数据和Python的魅力_1.5 数据分析的过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×