pod探针

Pod进阶:

探针*

Poststart

Prestop

pod的声明周期开始:

k8s的pod重启策略:

Always deployment的yaml三种模式都可以,不论正常退出还是非正常退出都重启

OnFailure:只有状态码非零才会重启,正常退出事不重启的

Never:正常退出和非正常退出都不重启

容器的退出,pod才会重启

Pod可以有多个容器,只要有一个容器退出,整个pod都会重启,pod内的所有容器都会重启

Docker的重启策略:

Docker的默认策略是Never

on-failure:非正常退出才会重启容器

Always:只要容器退出都会重启

Unless-stopped:只要容器退出就会重启,docker守护进程启动时已经停止的容器,不在重启

单机部署:docker足够了

集群化部署:k8s

Yaml文件快速生成:

--dry-run=client 只是调用了对象,而不是执行命令

基于server

Pod的状态补充:

Crashloopbackoff:pod当中的容器退出,kubelet正在重启

Imagepullbackoff:正在重试拉取镜像

Errorimagepull:拉取镜像出现错(1.网速太慢,2.镜像名字写错了,3.镜像仓库挂了)

Evicte:pod被驱赶(node节点的资源不够部署pod,或者是资源不足,kubelet自动选择一个pod驱逐)

小补充常见的pod状态:

CrashLoopBackOff:    容器退出,kubelet正在将它重启

InvalidImageName:    无法解析镜像名称

ImageInspectError:   无法校验镜像

ErrImageNeverPull:   策略禁止拉取镜像

ImagePullBackOff:    正在重试拉取

RegistryUnavailable: 连接不到镜像中心

ErrImagePull:        通用的拉取镜像出错

CreateContainerConfigError: 不能创建kubelet使用的容器配置

CreateContainerError: 创建容器失败

m.internalLifecycle.PreStartContainer 执行hook报错

RunContainerError:   启动容器失败

PostStartHookError:   执行hook报错

ContainersNotInitialized: 容器没有初始化完毕

ContainersNotReady:   容器没有准备完毕

ContainerCreating:    容器创建中

PodInitializing:pod   初始化中

DockerDaemonNotReady:  docker还没有完全启动

NetworkPluginNotReady: 网络插件还没有完全启动

Evicte:     pod被驱赶

Pod内的容器使用节点资源的限制:

  1. request:需要的资源
  2. Limit:限制,最高能占用系统多少资源,limit需要多少,最多也只能占用这么多,两个限制:

CPU :CPU的限制格式:1  2  0.5  0.2  0.3

1表示可以占用一个CPU,2表示可以占用两个。0.5可以占用半个 0.2:一个CPU的五分之一,0.1是最小单位,要么是整数,要么就是小数点后只能跟一位,最小单位0.1

m来表示CPU:CPU时间分片原理:通过周期性的轮流分配CPU时间给各个进程,多个进程可以在CPU上交替执行,在k8s就是表示占用的CPU比率,m:millicores单位 1表示1000m,意思就是1000m表示一个CPU,是1000100m是最小单位,表示0.1

内存:

注意一下单位格式即可:ki Mi Gi Ti

演示:

在创建pod时,一定要给容器做资源限制

进入容器:

详细查看节点信息

去node节点输入top查看

k8s当中怎么设置拉取镜像的策略:

默认策略:

IfNotPresent:如果本地镜像有,就不在拉取,本地没有才会去镜像仓库拉取

Always:不论镜像是否存在,创建时(重启时),都会拉取镜像

Never:仅仅使用本地镜像,本地没有,也不会主动拉取

如果都是本地部署,用Never

如果涉及到外部部署,默认策略(事前要把docker的镜像导入到目标主机)

Always:一般不用

演示:

Never:本地没有,也不会去拉取

今天的重点:

Pod的容器健康检查:

探针 probe k8s对容器执行的定期检查,诊断。

探针有三种规则:

  1. 存活探针:livenessProbe探测容器是否正常运行,如果发现探测失败会杀掉容器,容器会根据重启策略来决定是否重启,不是杀掉pod,只是对容器
  2. 就绪探针:探测容器是否进入ready状态,并做好接受请求的准备,探测失败ready0/1 就表示没有进入ready状态,service会把这个资源对象的端点从当中剔除,service也不会把请求转发到这个pod
  3. 启动探针:只是在容器的启动后开始检测,容器内的应用是否启动成功,在启动探测成功之前,所有的其他探针都会处于禁用状态,但是,一旦启动探针结束,后续的操作就不会再受启动探针的影响

在一个容器当中可以有多个探针。

启动探针:只在容器启动时探测

存活探针

就绪探针

Probe的检测方法:

  1. exec探针在容器当中执行命令,如果命令的返回码是0,表示成功,适用于需要再容器内自定义命令来检查容器的健康的情况
  2. httpGet:对指定IP+端口的容器发送一个httpget的请求,响应状态码大于等于200,小于400都是成功,范围200-400之间,适用于检查容器能否响应http的请求,web容器(nginx,Tomcat)
  3. TcpSocker:检查端口的,对指定端口上的容器的IP地址进行tcp检查(产生三次握手),端口打开,认为探测成功,检查特定容器的端口监听状态,例如端口从80改为999,telnet 20.0.0.71 80

诊断结果:

  1. 成功 容器通过了,正常运行
  2. 失败,存活探针就会重启
  3. 未知状态:诊断失败

Exec方式:

解析意思:

查看详细信息:

演示探针失败

删除

重新创建文件后依然可以检测

小结:Liveness杀死容器重启,所有探针策略伴随整个pod生命周期,除了启动探针

通过http方式做健康检测

为了实验效果,将pod删除

换端口检测

kubectl describe pod nginx1

还可以指定path路径

正在拉镜像

改正确

没有报错

TcpSocket方式:

强制删除

端口改错,为了实验效果

总结一下今天的全部内容:

探针的三个方法:

存活探针:检测失败之后,会杀死容器,然后重启

探针将伴随整个容器生命周期

Exec:相当于执行了一个shell命令:容器里面执行

Shell命令要执行成功,返回码为0,表示成功

只要成功一次即可,就是探测成功

httpGet:对web容器发起一次get请求,可以添加path,指定访问的资源,返回码大宇等于200,小于400的范围之内都算成功

TcpSocket:相当于telnet,指定的容器监听端口是否打开,是否能和指定的容器监听进行通信

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

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

相关文章

(读书笔记)网络是如何连接的

1.1 生成 HTTP 请求消息 浏览器是一个具备多种客户端功能的综合性客户端软件,因此它需要 一些东西来判断应该使用其中哪种功能来访问相应的数据,而各种不同的 URL(Uniform Resource Locator,统一资源定位符。) 就是用来干这个的,比如访问 Web 服务器时用“http:”,而访…

2024.1.4 Spark Core ,RDD ,算子

目录 一 . RDD(弹性分布式数据集) 二 . RDD的五个特性 三 .RDD的五大特点 四 . 算子 五 . 分区算子 ,重分区算子 , 聚合算子 ,关联算子 分区算子: 重分区算子 聚合算子 关联算子: 一 . RDD(弹性分布式数据集) Resilent弹性 Distrbuted分布式 Dataset数据集…

vue day5

1、自定义指令 2、v-loading指令封装&#xff08;蒙层&#xff09; 3、插槽 默认插槽 使用组件时&#xff0c;传入具体标签内容 4、插槽 后备内容&#xff08;默认值&#xff09; 5、具名插槽 6、作用域插槽 7、案例 App.vue&#xff1a; <template><d…

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…

前端实战第一期:悬浮动画

悬浮动画 像这样的悬浮动画该怎么做&#xff0c;让我们按照以下步骤完成 步骤&#xff1a; 先把HTML内容做起来&#xff0c;用button属性创建一个按钮&#xff0c;按钮内写上悬浮效果 <button classbtn>悬浮动画</button>在style标签内设置样式,先设置盒子大小&…

Linux 命令tail

命令作用 tail 命令用于显示文件的末尾内容&#xff0c;默认显示文件的最后 10 行。通常情况下&#xff0c;tail 命令用于实时查看动态日志文件&#xff0c;可以使用 -f 参数跟踪文件内容的变化。 语法 tail [选项] [文件名] 参数 以 log.txt 为例演示参数效果 -n -linesK…

大数据开发的专业术语

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项…

【LeetCode:11. 盛最多水的容器 | 双指针】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

阶段十-分布式-任务调度

第一章 定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其…

感知与认知的碰撞,大模型时代的智能文档处理范式

目录 0 写在前面1 GPT4-V&#xff1a;拓宽文档认知边界2 大语言模型的文档感知缺陷3 大一统文档图像处理范式3.1 像素级OCR任务3.2 OCR大一统模型3.3 长文档理解与应用 4 总结抽奖福利 0 写在前面 由中国图象图形学学会青年工作委员会发起的第十九届中国图象图形学学会青年科学…

ElasticSearch使用Grafana监控服务状态-Docker版

文章目录 版本信息构建docker-compose.yml参数说明 创建Prometheus配置文件启动验证配置Grafana导入监控模板模板说明 参考资料 版本信息 ElasticSearch&#xff1a;7.14.2 elasticsearch_exporter&#xff1a;1.7.0&#xff08;latest&#xff09; 下载地址&#xff1a;http…

如何使用 Python+selenium 进行 web 自动化测试?

Selenium是一个自动化测试工具&#xff0c;它可以模拟用户在浏览器中的操作&#xff0c;比如点击、输入、选择等等。它支持多种浏览器&#xff0c;包括Chrome、Firefox、Safari等等&#xff0c;并且可以在多个平台上运行。 安装和配置Selenium 在使用Selenium之前&#xff0c;…

【VTK三维重建-体绘制】第五期 vtkLODProp3D

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 前言 本文分享VTK中体绘制中的vtkLODProp3D对象&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞…

(Java企业 / 公司项目)Nacos的怎么搭建多环境配置?(含相关面试题)(二)

上一篇讲了一个单体服务中配置&#xff0c;传统的Nacos配置但是在微服务架构当中肯定都是多环境下配置&#xff0c;比如生产环境&#xff0c;dev测试环境等等。 第一种方式模拟开始&#xff1a; 首先展示在生产环境中nacos如何配置&#xff0c;在模块下新建一个配置文件&…

达梦数据库安装超详细教程(小白篇)

文章目录 达梦数据库一、达梦数据库简介二、达梦数据库下载三、达梦数据库安装1. 解压2. 安装 四、初始化数据库五、DM管理工具 达梦数据库 一、达梦数据库简介 ​ 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统&#xff0c;简称DM。 达梦数…

本地站点通过主备冗余专线连接上云

本地站点通过主备冗余专线连接上云 您可以使用两条物理专线以主备方式将本地数据中心IDC&#xff08;Internet Data Center&#xff09;接入阿里云。采用主备接入方式时&#xff0c;正常情况下仅主用线路在进行流量转发。阿里云按照您配置的健康检查的发包时间间隔探测主用线路…

【Midjourney】AI绘画新手教程(一)登录和创建服务器,生成第一幅画作

一、登录Discord 1、访问Discord官网 使用柯學尚网&#xff08;亲测非必须&#xff0c;可加快响应速度&#xff09;访问Discord官方网址&#xff1a;https://discord.com 选择“在您的浏览器中打开Discord” 然后&#xff0c;注册帐号、购买套餐等&#xff0c;在此不做缀述。…

uniapp+echarts开发APP版本教程

需求 需要在uniappecharts展示图表功能&#xff0c;是APP版本&#xff0c;不是小程序。找了好多教程都乱七八糟的&#xff0c;无法实现。以下是效果图 教程 1、安装插件 HBuilder安装echarts插件&#xff0c;插件地址如下。安装完成后在uni_modules/lime-echart文件夹下 ht…

微信小程序+前后端开发学习材料

目录结构 全局文件 1.app.json 文件 用来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。文件内容为一个 JSON 对象。 1.1 page用于指定小程序由哪些页面组成&#xff0c;每一项都对应一个页面的 路径&#xff08;含文…

docker镜像仓库详解(Docker Registry)

本片文章主要是对docker的镜像仓库进行了详解。其中包含了一些常用了 docker 指令&#xff0c;通过举例进行详解。也详细解释了镜像仓库的工作机制和常见的镜像仓库。也实际拉去和运行了一些镜像。希望本篇文章会对你有所帮助&#xff01; 文章目录 一、什么是Docker Registry …