K8s: 关于Kubernetes中的Pod的生命周期(状态)以及生命周期的钩子函数处理

pod 的生命周期


1 ) pod 几种常用状态

  • 1.1 )Pending(挂起)
    • Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行
    • 此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间。
  • 1.2 )Running(运行中)
    • Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建
    • 至少有一个容器仍在运行,或者正处于启动或重启状态
  • 1.3 )Succeeded(成功)
    • Pod 中的所有容器都已成功终止,并且不会再重启
  • 1.4 )Failed(失败)
    • Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止
    • 也就是说,容器以非 0 状态退出或者被系统终止。
  • 1.5 )Unknown(未知)
    • 因为某些原因无法取得 Pod 的状态
    • 这种情况通常是因为与 Pod 所在主机通信失败

2 )pod内部的容器相应的状态

  • 一旦调度器将 Pod 分派给某个节点,kubelet 就通过容器运行时开始为 Pod 创建容器
  • 容器的状态有三种:Waiting(等待)、Running(运行中)和 Terminated(已终止)
  • $ kubectl describe pod <pod 名称>
  • 2.1 ) Creating (创建中):
    • 容器镜像正在被拉取,并且容器正在被创建
    • 这是Pod状态从Pending过渡到Running之前的一个暂态
  • 2.2 ) Running(运行中)
    • Running 状态表明容器正在执行状态并且没有问题发生
    • 如果配置了 postStart 回调,那么该回调已经执行完成
    • 如果你使用 kubectl 来查询包含 Running 状态的容器的 Pod 时
    • 你也会看到 关于容器进入 Running 状态的信息
  • 2.3 ) Terminating (终止中)
    • 容器正在被终止,这通常发生在Pod被删除或缩容时
  • 2.4 ) Terminated(已终止)
    • 处于 Terminated 状态的容器已经开始执行并且或者正常结束或者因为某些原因失败
    • 如果你使用kubectl 来查询包含 Terminated 状态的容器的 Pod 时
    • 你会看到 容器进入此状态的原因、退出代码以及容器执行期间的起止时间
  • 2.5 ) Waiting (等待)
    • 如果容器并不处在 Running 或 Terminated 状态之一,它就处在 Waiting 状态
    • 处于 Waiting 状态的容器仍在运行它完成启动所需要的操作
    • 例如,从某个容器镜像 仓库拉取容器镜像,或者向容器应用 Secret 数据等等
    • 当你使用 kubectl 来查询包含 Waiting 状态的容器的 Pod 时,你也会看到一个 Reason 字段,其中给出了容器处于等待状态的原因
  • 2.6 ) Exited(已退出)
    • 容器中的进程已经正常或异常终止,并且不再运行。这可能是由于程序执行完毕或遇到错误而退出
  • 2.7 ) Restarting (重启中)
    • 容器正在尝试重新启动,这通常是因为容器之前异常退出
    • 并且根据Pod的配置进行了自动重启

Pod 生命周期的钩子函数

  • 在Pod配置文件中,定义 postStart 和 preStop 处理函数

  • 创建一个包含一个容器的 Pod,该容器为 postStart 和 preStop 事件提供对应的处理函数

  • 创建一个 pod, 新建一个 lifecycle-demo.yaml 文件

    apiVersion: v1
    kind: Pod
    metadata:name: lifecycle-demolabels:name: lifecycle-demo
    spec:containers:- name: lifecycle-demo-containerimage: nginxlifecycle:postStart:exec:command: ["sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]preStop:exec:command: ["sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]resources:limits:memory: "128Mi"cpu: "500m"ports:- containerPort: 80
    
  • $ kubectl create -f lifecycle-demo.yaml

    pod/lifecycle-demo created
    
  • $ kubectl get po

    NAME             READY   STATUS              RESTARTS   AGE
    lifecycle-demo   0/1     ContainerCreating   0          8
    
  • $ kubectl exec -it lifecycle-demo -- sh 进入pod

  • $ cat /usr/share/message 查看文件是否被写入内容

    Hello from the postStart handler
    
  • 在上述配置文件中,可以看到 postStart 命令在容器的 /usr/share 目录下写入文件 message

  • 命令 preStop 负责优雅地终止 nginx 服务

  • 当因为失效而导致容器终止时,这一处理方式很有用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言基础(入门综合案例)

学生信息管理系统 学员管理系统可以实现对学员的添加、全部显示、查询、修改、删除功能 数据存储格式说明 // 宏定义的常量&#xff0c;代表学生的最大个数 #define NUM 100// 结构体类型 struct stu 别名为 STU typedef struct stu {char name[30]; // 姓名int age; …

海外代理IP|Facebook对IP都有哪些要求?要选哪种?

众所周知&#xff0c;Facebook封号大多数情况都是因为IP的原因。Facebook对于用户账号有严格的IP要求和限制&#xff0c;以维护平台的稳定性和安全性。在这种背景下&#xff0c;海外IP代理成为了一种有效的解决方案&#xff0c;帮助用户避免检测&#xff0c;更加快捷安全地进行…

影响钕铁硼磁钢性能的因素及方法

钕铁硼永磁材料自问世以来&#xff0c;就以其优越的磁性能而备受关注&#xff0c;被称为“磁王“&#xff0c;在市场需求的不断地增长下&#xff0c;钕铁硼生产工艺及磁体性能也不断发展和提升。我们一般用剩磁、矫顽力和最大磁能积这几个指标来衡量磁性材料的磁性能。 剩磁 B…

C语言数据结构之链表

目录 前言 \color{maroon}{前言} 前言1.链表的概念及结构2.链表的分类3.无头单向非循环链表的实现4.带头双向循环链表的实现5.顺序表和链表的对比 前言 \color{maroon}{前言} 前言 在上一篇博客中我们提到&#xff0c;线性表包括顺序表和链表&#xff0c;顺序表在上篇博客中已…

力扣HOT100 - 25. K 个一组翻转链表

解题思路&#xff1a; class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode dum new ListNode(0, head);ListNode pre dum;ListNode end dum;while (end.next ! null) {for (int i 0; i < k && end ! null; i) {end end.next;}if …

学习笔记-数据结构-线性表(2024-04-17)

设计一个算法实现在单链表中删除值相同的多余节点的算法。 设计思想&#xff1a;双指针 变量说明&#xff1a; head - 参数变量&#xff0c;代表链表的头节点。在调用DelSameNum函数时&#xff0c;需要传递链表的头节点的地址给这个参数&#xff0c;从而允许函数对链表进行操作…

P1747 好奇怪的游戏

好奇怪的游戏 题目背景 《爱与愁的故事第三弹shopping》娱乐章。 调调口味来道水题。 题目描述 爱与愁大神坐在公交车上无聊&#xff0c;于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘&#xff1a;***&#xff08;游戏名被打上了马赛克&#xff09;。这个游戏类似…

类和对象(中)(构造函数、析构函数和拷贝构造函数)

1.类的六个默认成员函数 任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 //空类 class Date{}; 默认成员函数&#xff1a;用户没有显示实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数 2.构造函数 构造函数 是一个 特殊的成员函数&a…

docker容器技术篇:centos7搭建docker swarm集群

centos7搭建docker swarm集群 一 docker swarm 概述 1.1 swarm简介 Docker Swarm是 Docker 的集群管理工具&#xff0c;Swarm 在 Docker 1.12 版本之前属于一个独立的项目&#xff1b;其主要作用是把Docker集群抽象为一个整体&#xff0c;并且通过一个统一管理这些 Docker 主…

密码学 | 数字证书:应用

&#x1f951;原文&#xff1a;数字签名和数字证书的原理解读 - 知乎 &#x1f951;前文&#xff1a;密码学 | 数字签名 数字证书 - CSDN &#x1f951;提示&#xff1a;把客户端想成 Alice&#xff0c;服务器端想成 Bob 即可。客户端实际上指的是客户端浏览器。 下面&#…

前端入门:HTML(CSS边框综合案例)

案例&#xff1a; 源代码&#xff1a; css-borders.html: <body> <div id"square"> </div> <br> <div id"triangle"> </div> <br> <div id"trapezium"> </div> <br> <div id…

【C语言】指针篇-深入探索数组名和指针数组(2/5)- 必读指南

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 认识指针与数组之间的关系(涉及二级指针)**数组名****指针访问…

面试后,公司如何决定你的去留

在现代职场中&#xff0c;求职者在经历了一系列严格的面试流程后&#xff0c;往往会进入一段等待期。在这段时间里&#xff0c;他们满怀希望地等待企业的最终反馈。但有一个现象普遍存在&#xff1a;无论面试过程如何&#xff0c;最终决定权总是掌握在公司手中&#xff0c;由公…

企业常用Linux三剑客awk及案例/awk底层剖析/淘宝网cdn缓存对象分级存储策略案例/磁盘知识/awk统计与计算-7055字

高薪思维&#xff1a; 不愿意做的事情:加班&#xff0c;先例自己在利他 生活中先利他人在利自己 感恩&#xff0c;假设别人帮助过你&#xff0c;先帮助别人&#xff0c;感恩境界 awk三剑客老大 find其实也算是一种新的第四剑客 find 查找文件 查找文件&#xff0c;与其他命令…

推荐实用网站——算法可视化

网站链接 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

【设计模式】8、adapter 适配器模式

文章目录 八、adapter 适配器模式8.1 convert_lightning_to_usb8.1.1 client_test.go8.1.2 client.go8.1.3 computer.go8.1.4 adapter.go 八、adapter 适配器模式 https://refactoringguru.cn/design-patterns/adapter 通常用于老旧系统, 或第三方系统, 提供一层适配器或插件…

variant

class RTTR_API variant 对github项目rttr&#xff08;C反射库&#xff09;解析&#xff0c;链接&#xff1a;https://github.com/rttrorg/rttr namespace rttr { class variant_associative_view; class variant_sequential_view; class type; class variant; class argumen…

真实世界的密码学(四)

原文&#xff1a;annas-archive.org/md5/655c944001312f47533514408a1a919a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十六章&#xff1a;加密何时何地失败 本章涵盖 使用加密时可能遇到的一般问题 遵循烘烤良好的加密的要点 加密从业者的危险和责任 问候…

论文笔记:Time-LLM: Time Series Forecasting by Reprogramming Large Language Models

iclr 2024 reviewer 评分 3888 1 方法 提出了 Time-LLM&#xff0c; 是一个通用的大模型重编程&#xff08;LLM Reprogramming&#xff09;框架将 LLM 轻松用于一般时间序列预测&#xff0c;而无需对大语言模型本身做任何训练 为什么需要时序数据和文本数据对齐&#xff1a;时…

mysql一些语法记录

count: count(*) 符合条件所有行数&#xff1b; count(列名) 符合条件行数排除null; group by select sum(amount) from test where status 1 group by dept having amount > 100 顺序&#xff1a; group by 对 where过滤后的数据进行分组&#xff1b;&#xff08;分组字段…