pod详解(二)Pod生命周期小解

目录

一、前言

二、Pod 的生命周期

三、容器状态

四、总结


一、前言

在讲pod的配置前,先粗略概括下,其中包括pod的生命周期、镜像策略、网络模式、节点选择、节点亲和/反亲和、Pod亲和/反亲和、存储等等,涉及内容较多,需要各自慢慢理解及应用到实际中。

此章节主要介绍pod生命周期相关

二、Pod 的生命周期

 Pod 生命周期是指从创建到结束的这一段时间,其中包含 Pending、Running、Failed、Succeded 阶段;如果至少 其中有一个主要容器正常启动,则进入 Running; Pod 中容器以 失败状态结束而进入  Failed 阶段;Pod 中容器以 成功状态结束而进入  Succeeded 阶段。

生命周期中的几种状态解读:

  • Pending:挂起状态,表示已经创建了pod资源对象,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间
  • Running:运行中,pod已经被调度至某节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。
  • Succeed:pod中的所有容器都已经成功终止并且不会被重启
  • Failed:所有容器都已经停止,但至少有一个容器终止失败,即容器返回了非0的退出状态
  • Unknown:因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机与apiserver通信失败导致

以上几种情况,主要关注的是Pending和Failed的状态,可以通过命令 kubectl describe pod <pod名称> 查看产生的具体原因,这也是生产中Trouble shoot最多的场景,前者可能影响滚动更新或服务重调度,后者影响服务正常对外提供服务。

说到pod生命周期状态,这里不得不说一下容器相关特性,容器是否正常,影响到的就是pod的状态。

三、容器状态

Kubernetes 会跟踪 Pod 中每个容器的状态,就像它跟踪 Pod 生命周期上的阶段一样。 当调度器将 Pod 分派给某个节点,kubelet 就通过 容器运行时 开始为 Pod 创建容器。 容器的状态有三种:Waiting(等待)、Running(运行中)和 Terminated(已终止)。

要检查 Pod 中容器的状态,也可以使用 kubectl describe pod <pod 名称> 查看 Pod 中每个容器的状态。

容器状态解读:

  • Waiting :等待,容器仍在运行它完成启动所需要的操作,如拉取容器镜像
  • Running:运行中,表明容器正常运行状态
  • Terminated:已终止,表示容器正常结束或者因为某些原因失败终止

Tips:在配置服务滚动更新期间,避免因更新操作导致服务5XX,可以配置pod优雅关停,即 preStop ,如果容器配置了 preStop,则该操作会在容器进入 Terminated 状态之前执行,具体可以了解K8S preStop相关知识

四、总结

在实际生产应用中,pod状态和容器状态常与服务部署过程中的故障排查相关,因此 ,熟记pod和容器的几个状态解读,更有利于快速解决问题,另外就是配合命令: kubectl describe pod <pod名字>进行排查。

觉得有用就点个收藏吧~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值