赞
踩
目录
在讲pod的配置前,先粗略概括下,其中包括pod的生命周期、镜像策略、网络模式、节点选择、节点亲和/反亲和、Pod亲和/反亲和、存储等等,涉及内容较多,需要各自慢慢理解及应用到实际中。
此章节主要介绍pod生命周期相关
Pod 生命周期是指从创建到结束的这一段时间,其中包含 Pending、Running、Failed、Succeded
阶段;如果至少 其中有一个主要容器正常启动,则进入 Running;
Pod 中容器以 失败状态结束而进入 Failed
阶段;Pod 中容器以 成功状态结束而进入 Succeeded
阶段。
生命周期中的几种状态解读:
以上几种情况,主要关注的是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名字>进行排查。
觉得有用就点个收藏吧~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。