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的生命周期,从这个角度看,作用比较大。

事件处理函数

--- 
kind: Pod
apiVersion: v1
metadata:name: web5
spec:containers:- name: webimage: myos:httpdlifecycle:postStart:exec:command:- sh- -c- |
             xxxxxpreStop:exec:command:- sh- -c- |
             xxxxx

exec探测方法用的更一些使用嵌入式脚本

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024.9.24 数据分析

资料 111个Python数据分析实战项目,代码已跑通,数据可下载_python数据分析项目案例-CSDN博客 【数据挖掘六大项目实战】敢说这是全B站讲的最详细最通俗易懂的数据挖掘教程!整整60集!学不会来找我!-数据挖掘、数据挖掘…

idea怎么快速生成get set方法,快捷键是什么?

idea怎么快速生成get set方法 参考文章:IntelliJ IDEA生成get/set方法的快捷键是什么 1、生成某个get set方法altenter 快捷键:altenter 2.生成整个类或者某个get set方法altinsert 快捷键:altinsert 点击后,会出现下图弹窗&…

工业边缘网关的应用及优势-天拓四方

工业边缘网关作为工业互联网架构中的关键组件,正逐渐成为工业自动化和智能化的必备设备。它位于工业现场与云端服务器之间,承担着数据采集、处理、传输和初步分析的重要任务。以下是工业边缘网关的应用、优势以及具体的应用举例。 一、工业边缘网关的应…

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Gitea私有仓库

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Gitea私有仓库 Gitea私有仓库是一款轻量级的自托管Git服务,它提供了与Github、Gitlab等类似的功能,但允许用户在自己的服务器上部署和运行,从而完全掌控代码的存储和访问权限…

城市污水管网流量在线监测系统解决方案

一、方案背景 随着城市化进程的快速推进,城市污水管理成为环境保护和城市可持续发展的重要议题。传统的人工巡查和间断性监测方式已无法满足现代城市污水管理的需求。目前城市污水管网在线监测中,液体的流速、水位、流量监测非常重要。很多管网都是地下密…

爬虫代理使用注意事项:避免踩雷的必备指南

在大数据时代,网络爬虫已经成为获取信息的重要工具。然而,使用爬虫代理并不是一件轻松的事,稍有不慎就可能踩雷。为了帮助大家更好地利用爬虫代理,我们整理了一些使用注意事项。无论你是新手还是老手,这些建议都能让你…

dotnet4.0编译问题

因为最近在写cobaltstrike的execute-assembly内存加载的c#项目 用visual studio2022编译,最低net只能用6.0版本的,并且execute-assembly不支持 我想使用4.x版本进行编译,因为visual studio不支持,那么使用命令行进行编译 因为要用…

鸿蒙OpenHarmony【轻量系统内核(标准库支持)】子系统开发

CMSIS支持 基本概念 [CMSIS]是Cortex Microcontroller Software Interface Standard(Cortex微控制器软件接口标准)的缩写,是对于那些基于ARM Cortex处理器的微控制器独立于供应商的硬件抽象层。它包含多个组件层,其中之一是RTOS…

Milvus - 架构设计详解

Milvus 是一个专为在大规模密集向量数据集上进行相似性搜索而设计的开源向量数据库系统。其架构建立在流行的向量搜索库之上,如 Faiss、HNSW、DiskANN 和 SCANN,能够处理数百万、数十亿甚至数万亿的向量数据。为了全面了解 Milvus 架构,我们首…

R包:ggheatmap热图

加载R包 # devtools::install_github("XiaoLuo-boy/ggheatmap")library(ggheatmap) library(tidyr)数据 set.seed(123) df <- matrix(runif(225,0,10),ncol 15) colnames(df) <- paste("sample",1:15,sep "") rownames(df) <- sapp…

Temu全球下载量突破7.3亿次!Temu怎么上架产品?

拼多多旗下的出海跨境平台自2022年9月推出以来&#xff0c;在国际上的市场份额不断扩大中。最新数据显示&#xff0c;截至今年8月&#xff0c;Temu在全球的下载量已经超过了7.35亿次。这一数据充分显示了Temu在全球范围内的受欢迎程度和快速增长的势头。 具体来说&#xff0c;T…

【深度学习】03-神经网络 4-1 Dropout 正则化 - 神经网络缓解过拟合的正则化方法

参数更新&#xff0c;只是更新一部分&#xff0c;剩下的部分&#xff0c;是进行缩放。即分数会扩大。 Dropout 正则化是一种深度学习中常用的正则化技术&#xff0c;最早由 Geoffrey Hinton 等人在 2012 年提出&#xff0c;旨在防止神经网络的过拟合。 1. 来源 Dropout 是由…

【Elasticsearch系列廿二】特殊参数

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Kafka系列之:安装使用kafka_exporter详细步骤

Kafka系列之:安装使用kafka_exporter详细步骤 一、kafka_exporter二、下载kafka_exporter三、理解Topic Metrics指标四、理解Consumer Groups Metrics指标五、启动kafka_exporter六、查看页面七、systemctl托管服务一、kafka_exporter kafka_exporter源码kafka_exporter下载页…

企业智能培训新方案,高效打造金牌员工

标品市场竞争激烈&#xff0c;小微企业因长期专注于非标业务或者偏定制化路线&#xff0c;在团队专业能力与大型企业间存在显著差距。专业人才短缺、培养成本高企、培训滞后、效果难测、资源不均、考核标准不一及知识转化率低等问题&#xff0c;成为其业务转型的绊脚石。 如何高…

Java项目: 基于SpringBoot+mybatis+maven师生共评的作业管理系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven师生共评的作业管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、…

Python办公自动化案例:实现XMind文件转换成Excel文件

案例:实现XMind文件转换成Excel文件 将XMind文件转换为Excel文件的过程可以通过几个步骤来实现,主要涉及到读取XMind文件,解析其内容,然后创建一个Excel文件并将解析的内容写入。以下是一个简化的Python脚本,展示了如何使用xmindparser库来解析XMind文件,并使用pandas库…

虚拟现实技术在相亲交友中的应用未来趋势

随着虚拟现实&#xff08;VR&#xff09;技术的不断进步&#xff0c;它已经开始渗透到我们生活的方方面面&#xff0c;其中包括相亲交友领域。相亲交友网站作为人们寻找另一半的重要平台&#xff0c;也在积极探索VR技术的应用可能性。本文将探讨VR技术在未来相亲交友网站上的几…

球体检测系统源码分享

球体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

2024年双十一有哪些值得买?这些好物来看看!

2024年双十一有哪些值得入手的好物&#xff1f;在这个全民共享的购物盛宴里&#xff0c;我们精心挑选了一系列好物&#xff0c;旨在为您的生活添彩加温。从科技尖货到日常百货&#xff0c;从时尚潮流到家居必备&#xff0c;每一分每一秒都蕴含着超值优惠与惊喜发现。不论是自我…