k8s 集群 -4 pod生命周期

news2024/11/20 18:41:14

首先 容器环境初始化,pod 由pod 镜像来提供

在pod 生命周期里 容器主要 分文两种:初始化容器和主容器

初始化 容器一定要成功运行并退出,当初始化容器运行退出完了之后 主容器开始和运行

主容器开始运行的时候  有两个探针 存活探针和就绪探针
Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 init 容器
Init 容器与普通的容器非常像,除了如下两点它们总是运行到完成。
Init 容器不支持 Readiness,因为它们必须在 Pod 就绪之前运行完成,每个 Init 容器必须运行成功,下一个才能够运行。
如果 Pod 的Init 容器失败,Kubernetes 会不断地重启该 Pod,直到Init 容器成功为止。然而,如果 Pod 对应的 restartPolicy 值为 Never,它不会重新启动。

Init 容器能做什么?
Init 容器可以包含一些安装过程中应用容器中不存在的实用工具或个性化代码。
Init 容器可以安全地运行这些工具,避免这些工具导致应用镜像的安全性降低。
应用镜像的创建者和部署者可以各自独立工作,而没有必要联合构建一个单独的应用镜像。Init 容器能以不同于Pod内应用容器的文件系统视图运行。因此,Init容器可具有访问 Secrets 的权限,而应用容器不能够访问。由于Init 容器必须在应用容器启动之前运行完成,因此 init 容器提供了一种机制来阻塞或延迟应用容器的启动,直到满足了一组先决条件。一旦前置条件满足,Pod内的所有的应用容器会并行启动。

初始化容器

在集群内部 corends 提供解析服务 每当在集群内创建一个services的时候,就会创建一个解析

添加serveice 定义

没有添加service解析之前 都是就绪状态

添加了 service 解析之后

初始化容器的效果就是 在打开myapp容器之前,首先通过init容器检测集群内的解析到位没,如果没到位 后续的容器不会起来 直到环境就绪 容器在开启 svc解析成功后,init容器退出,主容器运行

=============================

探针 是由 kubelet 对容器执行的定期诊断:ExecAction:在容器内执行指定命令。如果命令退出时返回码为0 则认为诊断成功。
TCPSocketAction: 对指定端口上的容器的IP 地址进行TCP 检查。如果端口打开,则诊断被认为是成功的。
HTTPGetAction:对指定的端口和路径上的容器的IP 地址执行HTTP Get请求。如果响应的状态码大于等于200 且小于 400,则诊断被认为是成功的。
每次探测都将获得以下三种结果之一:
成功:容器通过了诊断。
失败:容器未通过诊断
未知: 诊断失败,因此不会采取任何行动。

Kubelet 可以选择是否执行在容器上运行的三种探针执行和做出反应:

livenessProbe: 指示容器是否正在运行。如果存活探测失败,则 kubelet 会杀死容器,并且容器将受到其 重启策略 的影响。如果容器不提供存活探针则默认状态为 Success。
readinessProbe: 指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与 Pod 匹配的所有 Service 的端点中删除该 Pod 的IP地址。初始延迟之前的就绪状态默认为 Failure。如果容器不提供就绪探针,则默认状
startupProbe: 指示容器中的应用是否已经启动。如果提供了启动探测(startup probe),则禁用所有其他探测,直到它成功为止。如果启动探测失败,kubelet 将杀死容器,容器服从其重启策略进行重启。如果容器没有提供启动探测,则默认状态为成功Success。

一旦设置启动探诊 回忽略前两个 服务的话 定义前两个就够了

============================

回收资源

创建存活探针

在存活探针检测失败导致容器不断被重启

一旦存活探针报错,这样的话 就认为这个pod 不存活,就会不断重启pod 内的容器

端口修改成80 肯定会启动成功

==============================

就绪探针

此时未就绪状态

没有定义就绪探针 就绪探针就是成功的

但是现在定义了就绪探针 就绪探针就不成功

创建测试页面

创建svc

就绪容器自动上线

删除测试页面

就绪探针失败,容器未就绪

在svc中容器自动下线

总结: 存活探针如果检测失败 会不断地重启这个容器,让它达到自愈的功能

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

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

相关文章

Docker实战技巧(二):Kubernetes基础操作实战

Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题 1、关闭防火墙并设置开机禁用   systemctl stop firewalld   systemctl disable firewalld 2、配置repo   cd /etc/yum.repos.d/   下载Docker repo   wget https://mirrors.aliyun.com/docker-…

【论文写作】Latex 所有符号汇总参考

【论文写作】Latex 所有符号汇总参考 文章目录 【论文写作】Latex 所有符号汇总参考1. 希腊字母2. 数学构造3. 分割4. 累加累成等5. 标准函数名称6. 二进制符号(关系符号)7. 箭头8. 杂项符号(其他的符号)9. 数学模式重音、音节10.…

结构体-寻找爱好相同的人

任务描述 每个人有三项爱好,分别是食物,饮料,电影,运动等中的任意三项,第 i 个人的三种爱好分别用一个整数 ai​,bi​,ci​ 来表示。现在给出 n 个人的爱好,如果两个人起码有两项以…

YOLOv3模型原理深度解析

概况 (1)YOLOv3是YOLO系列第一次引入残差连接来解决深度网络中的梯度消失问题(是不是第一次,有待你后面考证),实际用的backbone是DarkNet53 (2)最显著的改进,也是对你涨…

[Linux]线程概念

[Linux]线程概念 文章目录 [Linux]线程概念什么是线程Linux系统下的线程实现线程是CPU调度的基本单位进程是系统分配资源的基本实体二级页表 线程的优点线程的缺点线程异常线程用途线程资源 什么是线程 线程是进程内部的一个执行分支,执行粒度比进程更细&#xff0…

MyBatis 中的插件可以拦截哪些操作

MyBatis 中的插件可以拦截哪些操作 MyBatis 是一个优秀的持久化框架,在实际项目开发中广泛应用。MyBatis 的插件机制可以方便地对 MyBatis 的各个环节进行扩展和定制。在本文中,我们将详细介绍 MyBatis 中的插件机制,并探讨插件可以拦截哪些…

十五、红外遥控器

十五、红外遥控器 介绍基本接收和发送遥控器键码外部中断和外部中断寄存器 红外解码中断函数红外遥控电机模块电机调速 介绍 基本接收和发送 空闲状态:红外LED不亮,接收头输出高电平发送低电平:红外LED以38KHz闪烁,接收头输出低…

深入理解requests库和使用方法

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 一、requests简介 首先我们要了解requests库是个什么 #简介:使用requests可以模拟浏览器的…

10.3使用Servlet写一个表白墙网站

一.创建项目,引入依赖和前端页面. 1.注意,静态页面放在webapp目录下,不是WEB-INF, 2.存档约定:前端使用post(/messageWall/message)发送http请求,使用json格式把数据传输到后端.服务器返回HTTP/1.1 200 ok. 3.读档约定:使用get(/messageWall/message),服务器返回HTTP/1.1 200…

【C++入门指南】C如何过渡到C++?祖师爷究竟对C++做了什么?

【C入门指南】C如何过渡到C?祖师爷究竟对C做了什么? 前言一、命名空间1.1 命名空间的定义1.2 命名空间使用 二、C输入、输出2.1 std命名空间的使用惯例 三、缺省参数3.1 缺省参数的定义3.2 缺省参数分类 四、函数重载4.1 函数重载概念4.2 C支持函数重载的…

C++17中std::filesystem::path的使用

C17引入了std::filesystem库(文件系统库, filesystem library)。这里整理下std::filesystem::path的使用。 std::filesystem::path,文件系统路径,提供了对文件系统及其组件(例如路径、常规文件和目录)执行操作的工具。此path类主要用法包括&#x…

大众滑雪赛事活动等级划分与评定规范 学习

声明 本文是学习GB-T 42374-2023 大众滑雪赛事活动等级划分与评定规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件确立了大众滑雪赛事活动的等级划分规则,规定了总体要求、评定主体、申报条件、等级评定 要求、结果应…

Linux0.11——第二回 从0x7c00到0x90000

上一讲,讲了CPU执行操作系统的最开始的两行代码: mov ax, 0x07c0 mov ds, ax这两行代码将数据段寄存器 ds 的值变成了 0x07c0,方便之后访问内存时,利用这个段基址进行寻址。 接下来的代码: mov ax,0x9000 mov es,ax…

微服务学习(八):安装JDK

微服务学习(八):安装JDK 1、下载JDK 2、将下载后的资源包上传到服务器 3、解压资源包并安装 tar -zxvf jdk-8u371-linux-x64.tar.gz4、配置环境变量 vi /etc/profileexport JAVA_HOME/home/java/jdk1.8.0_371/ export PATH$PATH:$JAVA_HOM…

关于ES5内置函数Object的新方法--Object.create()

在今天的学习中,更深层次的了解了一下ES5中内置函数Object的新方法Object.create(),觉得这个api功能真的十分强大,并且使用的场景也有很多,现和各位同行们分享学习成果,欢迎各位大佬们指正,废话不多说,开整…

git reset origin --hard解决‘Your branch is ahead of ‘origin/xxxx‘ by xx commit.’

git reset origin --hard解决‘Your branch is ahead of origin/xxxx by xx commit.’ 如图: 之前是这么解决的解决git:Your branch is ahead of ‘XXX‘ by X commits-CSDN博客git删除/撤销远已经push到程服务器上某次代码提交场景:不小心把…

InterSystems开发者社区中文版第二届技术征文大赛正式启动!

嗨,开发者们! 秋高气爽之际,我们很高兴地宣布启动🏆InterSystems开发者社区中文版第二届技术征文大赛 🏆(←点击链接进入参赛页面)! 从2023年9月19日-10月24日(北京时间…

基于微服务的第二课堂管理系统(素质拓展学分管理平台)SpringCloud、SpringBoot 分布式,微服务

基于微服务的第二课堂管理系统 一款真正的企业级开发项目,采用标准的企业规范开发,有项目介绍视频和源码,需要学习的同学可以拿去学习,这是一款真正可以写在简历上的校招项目,能够真正学到东西的一个项目,话…

【论文写作】符号:矩阵、向量的乘法、内积、点积等

【论文写作】符号:矩阵、向量乘法、内积、点积等 文章目录 【论文写作】符号:矩阵、向量乘法、内积、点积等1. 矩阵乘法1.1 矩阵乘积1.2 矩阵哈德玛乘积1.3 矩阵克罗内克积 2. 向量乘法2.1 向量点积、内积2.2 向量Hadamard积2.3 向量外积2.4 向量叉积 1.…

科研之路(2023.9.22)

前言 理解小车底盘代码,为了轨道机器人研究 笔记