当前位置: 首页 > news >正文

K8S学习之基础九:pod的生命周期

Pod生命周期

pod从开始创建到终止退出的时间范围成为pod生命周期

生命周期包含一下几个重要流程:

创建主容器(container是,yaml里创建的容器),初始化容器(initContainers),容器启动后钩子,启动探测、存活性探测、就绪性探测,容器停止前钩子。

pod在整个生命周期过程中总会处于以下几个状态:

pending:创建了pod资源并存入etcd中,但尚未完成导读

containercreating:pod调度完成,被分配到指定的node上。处于容器创建的过程中,通常是在拉取镜像过程中

running:pod包含的所有容器都创建成功,并运行

succeeded:pod中所有容器都已成功终止并且不会被重启

failed:所有容器都已经终止,但至少一个容器终止失败,也就是说容器反悔了非0值的退出状态或已经被系统终止

unknown:因为某些原因无法取得pod状态,这种情况与pod所在主机通信失败

pod生命周期的重要行为:

  1. 在启动任何容器之前,先创建pause基础容器,初始化pod环境并为后续加入的容器提供共享的名称空间
  2. 初始化容器(initcontainer,可有可无),一个pod可以拥有任意数量的init容器,按照yaml里的顺序执行,并且仅当最有一个init容器执行完毕才会启动主容器
  3. 生命周期钩子

pod允许定义两种类型的声明周期钩子,启动后钩子(post-start)和停止前钩子(pre-stop)

这些生命周期钩子是基于每个容器指定的,和init容器不同的是,init是对应到整个pod,而钩子是针对容器的,是在容器启动后和停止前执行的

容器探测

对pod健康状态诊断,分为三种:Startupprobe(启动探测)、Livenessprobe(存活性探测)、Readinessprobe(就绪性探测)

Startupprobe:探测容器是否正常运行

Livenessprobe:判断容器是否处于running状态,根据重启策略决定是否重启容器

Readinessprobe:判断容器是否准备就绪并对外提供服务,将容器设置为不可用,不接受service转发的请求

三种探针用于pod检测:

ExecAction:在容器中执行一个命令,并根据返回的状态�码进行诊断,只有返回0为成功

TCPSocketAction:通过与容器的某TCP端口尝试建立连接

HTTPGetAction:通过向容器IP地址的某指定端口的path发起HTTP GET请求

容器的重启策略:

Always:pod对象终止就重启,默认设置

OnFailure;尽在pod出现错误时才重启

Never:从不重启

一旦pod被绑定到一个节点上,就不会重新绑定到另一个节点上,要么重启,要么终止

pod的终止过程

  1. 用户发出删除pod命令:kubectl delete pod    kubectl delete -f yaml
  2. pod队形随着时间的推移更新,默认30秒,pod被视为daad状态
  3. 将pod标记为Terminating状态
  4. 同时监控到pod状态为Terminating状态的同时启动pod关闭过程
  5. 同时endpoints控制器监控到pod对象关闭,将pod与service匹配的endpints删除
  6. 如果pod定义了preStop钩子处理程序,则 pod 被标记为“Terminating”状态时以同步的方式启动执行;若宽限期结束后,preStop 仍未执行结束,第二步会重新执行并额外获得一个2秒的小宽限期
  7. pod内对象的容器收到TERM信号
  8. 宽限期结束之后,若存在任何一个运行的过程,pod会收到SIGKILL信号
  9. kubelet请求apiserver将此pod资源款玄奇设置为0,从而完成删除操作
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/49510.html

相关文章:

  • Ubuntu20.04双系统安装及软件安装(四):国内版火狐浏览器
  • linux应用:errno、perror、open、fopen
  • StableDifussion初学(模型选择区)
  • 除了DeepSpeed,在训练和推理的时候,显存不足还有什么优化方法吗?FlashAttention 具体是怎么做的
  • Gartner发布安全运营指标构建指南
  • SpringMVC 的配置及拦截器
  • 浅谈开发基于DeepSeek的编程辅助插件需要系统性的技术规划和实施方案
  • Python+Vue+数据可视化的考研知识共享平台(源码+论文+讲解+安装+调试+售后)
  • 【HarmonyOS Next】自定义Tabs
  • 脑机接口SSVEP经典算法 TRCA任务相关成分分析 matlab实战
  • 05类加载机制篇(D6_方法调用和方法执行)
  • QSFP(Quad Small Form-factor Pluggable)详解
  • DeepSeek赋能Power BI:开启智能化数据分析新时代
  • uniapp 常用 UI 组件库
  • 华为hcia——Datacom实验指南——配置手工模式以太网链路聚合
  • 蓝桥云客 求和
  • 数据结构与算法:选择排序
  • 天佐.盘古斧 即时通讯平台
  • kakfa-3:ISR机制、HWLEO、生产者、消费者、核心参数负载均衡
  • SpringBoot + redisTemplate 实现 redis 数据库迁移、键名修改
  • 技术速递|开启全新的多模态模型 - Microsoft Phi-4-mini Phi-4-multimodal
  • 无人设备遥控器之遥控帧序列篇
  • c高级第五天
  • “解决 MyBatis 错误:SAXParseException - 文件提前结束导致 XML 映射文件解析失败“
  • 天佐.炼妖壶 带内存泄漏检测的内存池
  • 华为飞腾D2000芯片(基于ARM架构)的欧拉操作系统(openEuler)上部署MySQL
  • doris: Hive
  • 使用Word时无法粘贴,弹出错误提示:运行时错误‘53‘:文件未找到:MathPage.WLL
  • Qt | 目录和文件路径常用函数大全
  • 剧本杀门店预约小程序:市场发展下的刚需