k8s中,pod生命周期,初始化容器,容器探针,事件处理函数,理解其设计思路及作用

k8s中,为什么要设计pod

平台直接管理容器不是挺好的吗

为什么要以pod为单位进行管理,

然后把容器放在pod里面

那么有pod和没pod的区别是什么

也就是pod提供了什么作用

这个可以考虑从pod生命周期管理的角度去思考

如图,pod主容器在运行之前,会有一个initcontainer,就是初始化容器。

初始化容器的作用是什么?

比如主容器运行的服务需要连接到数据库才能运行

那么在pod里面写一个initcontainer来确保数据库可以连接上,

才能启动主容器maincontainer

initcontainer里面用busybox镜像,自定义嵌入式脚本command、args、- -c、 - |

命令里面写对于数据库连接的测试,只有连接成功,初始化容器

才算running

初始化容器running

主容器才启动

这个从外观上来讲,相当于多容器pod

从逻辑上来讲,初始化容器的启动是主容器启动的必要条件

初始化容器启动了,才启动主容器。

这个对于服务的依赖的解决来讲,几乎是必要的。

还有主容器挂载pvc卷的时候,

需要指定挂载目录

而这个目录是需要创建好的

如果不用初始化容器

就需要管理员手工创建

而pod调度到哪个节点上,又是自动化调度

如果管理员需要找到对应的节点

再去创建,比较繁琐,不自动化。

把这个挂载的目录

在pod的资源文件里面

写一个initcontainer初始化容器

用busybox镜像,加自定义脚本,创建好目录

那么pod在哪个节点上,这个initcontainer作为主容器的依赖容器,会在主容器

启动之前把目录创建好,就很自动化。

另外,如果restartPolicy设置为Never,不让容器重启

那么,如果initcontainer启动失败了,整个pod也就不再重启,就报错

初始化容器可以有多个

初始化容器的镜像可以和主容器不同

初始化容器执行完自定义命令之后,会退出,不会一直运行

初始化容器退出的时候,会有个退出码,如果非零,那么意味着异常,就需要排查

如果初始化容器退出正常,主容器才会运行。

说白了,初始化容器,就是主容器运行的必要条件。

这个必要条件,可以是数据库,可以是目录创建,可以是各种自定义检测脚本

-------------------------------------------------------------------------------

什么是容器探针?

是容器的健康检查

由谁来检查?

由kubelet

检查哪几个方面?

三个

startupProbe        启动了没

livenessProbe      运行着没

readinessProbe    准备好接收服务请求了没

这个健康检测,拿汽车的年审来比喻

就像是

车能打着吗

车能跑吗

车能坐乘客吗,空调、座椅、安全带、后视镜、转向灯、雨刮器、车载wifi、音乐播放器、香氛、氛围灯,这些都准备好了没,准备好了才可以开始。

那么

startupProbe就是检查发动机能否启动

livenessProbe就是检查车能否上路跑

readinessProbe就是检查提供服务需要的方方面面都准备好了没

startupProbe从字面意思看,就是容器启动了没

那么怎么看容器启动了没,比如容器运行的服务,有端口号

那么用tcpSocket的方式访问这个端口号能不能访问到,能的话,startupProbe就是

success的,不能就是failure,不知道就是unknown

unknown的情况一般应该是网络的问题

livenessProbe从字面意思看,就是在线没,转着没,容器跑着没有

怎么看是否在线,用httpGet的方式去访问端口号加路径,如果状态码是200-400

就是success的,不是就failure,不知道就unknown

readinessProbe从字面意思看,就是准备好了没

怎么知道准备好了没?用exec自定义执行命令的方式,去检测

比如,检测某个文件的版本是否大于2,如果大于,

那就success,不是就failure,不知道就unknown

比如web服务,版本需要大于2,不大于2就不ready

那么这里面的

success  

failure

unknown

就是

容器探针的三种检测结果

tcpSocket

httpGet

exec

还有一个gPRC,

就是

容器探针检测的四种方法

gRPC是谷歌远程过程调用,检测自己开发的程序和返回状态。

startupProbe    

livenessProbe

readinessProbe

就是

容器探针检测的三个检测方面

可以这么理解,

容器探针,343,总共十个要素,

3个检测方面

4种检测方法

3种检测结果

------------------------------------------------------------------------

事件处理函数,也叫钩子函数

一个是postStart,就是已经开始了,但是也才刚刚开始,

就是主容器启动后干点啥,

比如要去参加聚会,要喝酒,已经坐上车了,在去参加聚合的路上了

甚至是,已经到达聚会的地方了,开始喝酒前,先喝瓶牛奶

这个叫postStart

比如主容器干活之前,先注册一下服务,告诉注册中心,说我来了,

就叫postStart

第二个钩子函数是preStop

也就是主容器结束之前干点啥

还是拿聚会举例,比如大家喝完酒了,也聊得很开心,要散场了

参加聚合的人,有的是开车来参加的,返程的时候就要叫个代驾

拿出手机,叫代驾的操作,就是preStop

也可以说是,在返程之前,跟还在聚会地方的朋友打声招呼,说一下

这个过程,也可以叫preStop

在主容器干完活了,准备休息了,会告诉注册中心,说先下线了。

这个叫preStop

---------------------------------------------------------------------

那么总的来说

如图

pod的生命周期中,除了主容器

还包括

初始化容器

容器探针

钩子函数

这三个要素

这些是可选项

运用好这些可选项,

可以让k8s集群,

更加自动化,实时监控化,可定制化。

如果没有pod,

那么可能这些功能不容易实现

因为这些都是在pod的生命周期的不同阶段进行的。

kubelet是这些行为的经理

看着这些动作

如果有问题,

就调用资源处理,

同时把情况传递给数据库。

如果运行ok,没问题,

就继续保障着这些服务

同时把运行ok的情况

也传递给数据库。

pod的生命周期,从这个角度看,作用比较大。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA并发编程系列(10)Condition条件队列-并发协作者

一线大厂面试真题,模拟消费者-生产者场景。 同样今天的分享,我们不纸上谈兵,也不空谈八股文。以实际面经、工作实战经验进行开题,然后再剖析核心源码原理。 按常见面经要求,生产者生产完指定数量产品后,才能…

文档矫正算法:DocTr++

文档弯曲矫正(Document Image Rectification)的主要作用是在图像处理领域中,对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正,使其恢复为平整、易读的形态。 一. 论文和代码 论文地址:https://arxiv.org/…

LDRA Testbed(TBrun)软件单元测试_常见问题及处理

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成(自动静态分析并用邮件自动发送分析结果) LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…

POI操作EXCEL增加下拉框

文章目录 POI操作EXCEL增加下拉框 POI操作EXCEL增加下拉框 有时候通过excel将数据批量导入到系统,而业务操作人员对于一些列不想手动输入,而是采用下拉框的方式来进行选择 采用隐藏sheet页的方式来进行操作 String sheetName "supplier_hidden_s…

Python记录

1.冒泡排序 时间复杂度O(n^2) 选择、插入都是 def bubble(data, reverse):for i in range(len(data)-1):for j in range(len(data)-i-1):if data[j] > data[j1]:data[j], data[j1] data[j1], data[j]if reverse:data.reverse()return data 2.快速排序 时间…

基于深度学习的文本情感原因提取研究综述——论文阅读

前言 既然要学习情感分析,那么肯定还要了解情感原因对抽取的发展历程,所以我又搜了一篇研究综述,虽然是2023年发表的,但是里面提及到的历程仅停留到2022年。这篇综述发布在TASLP期刊,是音频、声学、语言信号处理的顶级…

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21

根据状态转移表实现时序电路 描述 某同步时序电路转换表如下,请使用D触发器和必要的逻辑门实现此同步时序电路,用Verilog语言描述。 电路的接口如下图所示。 输入描述: input A , input clk , …

结构设计模式 -装饰器设计模式 - JAVA

装饰器设计模式 一. 介绍二. 代码示例2.1 抽象构件(Component)角色2.2 具体构件(Concrete Component)角色2.3 装饰(Decorator)角色2.4 具体装饰(Concrete Decorator)角色2.5 测试 结…

【HTML5】html5开篇基础(1)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

【优选算法之前缀和】No.6--- 经典前缀和算法

文章目录 前言一、前缀和例题模板:1.1 【模板】前缀和1.2 【模板】⼆维前缀和1.3 寻找数组的中⼼下标1.4 除⾃⾝以外数组的乘积1.5 和为 K 的⼦数组1.6 和可被 K 整除的⼦数组1.7 连续数组1.8 矩阵区域和 前言 👧个人主页:小沈YO. &#x1f6…

Python酷玩之旅_mysql-connector

前言 Python作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。 正如Java中的JdbcDriver一样…

亲测好用,ChatGPT 3.5/4.0新手使用手册,最好论文指令手册~

本以为遥遥领先的GPT早就普及了,但小伙伴寻找使用的热度一直高居不下,其实现在很简单了! 国产大模型快200家了,还有很多成熟的国内AI产品,跟官网一样使用,还更加好用~ ① 3.5 大多数场景是够用的&#xff…

OpenCV特征检测(12)检测图像中的潜在角点函数preCornerDetect()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算用于角点检测的特征图。 该函数计算源图像的基于复杂空间导数的函数 dst ( D x src ) 2 ⋅ D y y src ( D y src ) 2 ⋅ D x x src − 2 …

【Linux】解锁管道通信和共享内存通信,探索进程间通信的海洋

目录 引言: 1、进程间通信基础介绍 1.1为什么需要在进程之间通信? 1.2进程间通信是什么? 1.3我们具体如何进行进程间的通信呢? a.一般规律: b.具体做法 2.管道 2.1什么是管道 2.2匿名管道: 创建…

Zotero进阶指南:7个插件让文献管理变得前所未有的简单

还在为海量文献管理头疼吗?还在为找不到合适的插件犯愁吗?别急,今天我就要带你解锁Zotero的终极武器 - 那些让你爱不释手的必备插件! 作为一个从小白到文献管理达人的过来人,我可以负责任地说:没有这些插件,你的Zotero只能发挥一半功力!安装了这些插件,你的效率绝对能飙升! …

计算机毕业设计之:基于微信小程序的电费缴费系统(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

关于LLC知识18(公式的理解)

公式中有三个未知数:x,k,Q 1、其中,x为归一化频率,开关频率f与谐振频率fr的比值; k:励磁电感和谐振电感的比值Lm/Lr Q:第一谐振频率点的感抗与Rac的比值2fL/Rac 2、KLm/Lr,其中fr11/2&#…

Qt/C++ 多线程同步机制详解及应用

在多线程编程中,线程之间共享资源可能会导致数据竞争和不一致的问题。因此,采用同步机制确保线程安全至关重要。在Qt/C中,常见的同步机制有:互斥锁(QMutex、std::mutex)、信号量(QSemaphore&…

deepin桌面版连接windows远程桌面

在Linux系统中,要登录到Windows系统,通常可以使用远程桌面协议(RDP)。你需要在Linux系统上安装RDP客户端。 使用如下命令安装rdp协议: sudo apt-get install xrdp 安装成功后,启动rdp服务。 sudo systemctl start xrdp 有了r…

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】 1、前言说明2、流程说明3、现场提交(线下)4、网上提交1-起诉书样例2-起诉书编写(1)原告信息:&…