K8S哲学 - probe 探针

探针分类:

liveness probe

readiness probe

startup probe

  1. Liveness Probe:用于检查容器是否还在运行。如果 Liveness Probe 失败,Kubernetes 会杀死容器,然后根据你的重启策略来决定是否重新启动容器。常见的做法是使用与 Readiness Probe 相同的低成本 HTTP 端点,但是设置更高的 failureThreshold,这样可以确保在 Pod 被强制杀死之前,它会被观察到为 not-ready 一段时间。

  2. Readiness Probe:用于检查容器是否准备好接受流量。一个 Pod 被认为是 ready 的,当且仅当它的所有容器都是 ready 的。这个信号的一个用途是控制哪些 Pod 被用作 Service 的后端。当一个 Pod 不是 ready 的,它会从 Service 的负载均衡器中移除。

  3. Startup Probe:用于检查容器应用程序是否已经启动。如果配置了这样的探针,那么在它成功之前,Liveness Probe 和 Readiness Probe 不会开始,确保这些探针不会干扰应用程序的启动。这可以用于对慢启动的容器进行 Liveness 检查,避免它们在启动并运行之前被 kubelet 杀死。

探测方式

HTTPGetAction

TCPSocketAction

ExecAction

每种探针都可以使用以下三种方式之一进行检查:

  • HTTP GET:对容器的一个 HTTP 服务器发起一个 GET 请求。如果服务器返回的状态码在 200 到 399 之间,那么探针就是成功的。

  • TCP Socket:尝试打开容器的一个 TCP 端口。如果端口已经打开,那么探针就是成功的。

  • Exec:在容器中执行一个命令。如果命令返回 0,那么探针就是成功的。

 

ERROR: The Pod "app" is invalid: spec.containers[0].livenessProbe.successThreshold: Invalid value: 3: must be 1

对于 Liveness 探针,successThreshold 的值必须为 1。这是因为 Liveness 探针只需要一次成功的探测就能确定容器是存活的。所以,你需要将 successThreshold 的值改为 1。

apiVersion: v1
kind: Pod
metadata:name: 'app'labels: name: 'zs'age: '18'
spec:containers:- name: 'probe-po'image: nginx:1.14.2livenessProbe:httpGet:path: /index.htmlport: 80initialDelaySeconds: 5periodSeconds: 5timeoutSeconds: 5failureThreshold: 3successThreshold: 1

这时 如果将 index.html 改成 index1.html 

 livenessProbe 采用 tcpSocket

apiVersion: v1
kind: Pod
metadata:name: 'app'labels: name: 'zs'age: '18'
spec:containers:- name: 'probe-po'image: nginx:1.14.2livenessProbe:# httpGet:#   path: /index1.html#   port: 80# initialDelaySeconds: 5# periodSeconds: 5# timeoutSeconds: 5# failureThreshold: 3# successThreshold: 1tcpSocket:port: 80periodSeconds: 5successThreshold: 1failureThreshold: 3

livenessProbe 采用 exec

apiVersion: v1
kind: Pod
metadata:name: 'app'labels: name: 'zs'age: '18'
spec:containers:- name: 'probe-po'image: nginx:1.14.2livenessProbe:# httpGet:#   path: /index1.html#   port: 80# initialDelaySeconds: 5# periodSeconds: 5# timeoutSeconds: 5# failureThreshold: 3# successThreshold: 1# tcpSocket:#  port: 89# periodSeconds: 5# successThreshold: 1# failureThreshold: 3exec:command: ['cat', '/usr/share/nginx/html/index.html']# - cat# - /usr/share/nginx/html/index.htmlsuccessThreshold: 1failureThreshold: 3timeoutSeconds: 3periodSeconds: 3

改成 index1.html

配置 livenessProbe readinessProbe startupProbe

apiVersion: v1
kind: Pod
metadata:name: 'app'labels: name: 'zs'age: '18'
spec:containers:- name: 'probe-po'image: nginx:1.14.2livenessProbe:# httpGet:#   path: /index1.html#   port: 80# initialDelaySeconds: 5# periodSeconds: 5# timeoutSeconds: 5# failureThreshold: 3# successThreshold: 1# tcpSocket:#  port: 89# periodSeconds: 5# successThreshold: 1# failureThreshold: 3exec:command: ['cat', '/usr/share/nginx/html/index1.html']# - cat# - /usr/share/nginx/html/index.htmlsuccessThreshold: 1failureThreshold: 3timeoutSeconds: 3periodSeconds: 3readinessProbe: httpGet: path: /index.htmlport: 80failureThreshold: 3successThreshold: 1 timeoutSeconds: 3periodSeconds: 3startupProbe: httpGet:path: /index.htmlport: 80failureThreshold: 3successThreshold: 1timeoutSeconds: 3periodSeconds: 3

 

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

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

相关文章

Lobechat 的基本使用流程

一、安装 下载lobechart的页面代码 $ git clone https://github.com/lobehub/lobe-chat.git $ cd lobe-chat $ pnpm install $ pnpm run dev注意:node环境要18以上 二、使用本地模型 1.安装ollama 2.通过ollama 下载本地模型 llama2(选择合适的本地模型…

怎么用手机远程控制电脑 远程控制怎么用

怎么用手机远程控制电脑:远程控制怎么用 在这个科技日新月异的时代,远程控制电脑已经成为了很多人的需求。有时,我们可能在外出时突然需要访问家中的电脑,或者在工作中需要远程操控办公室的电脑。这时,如果能用手机远…

Hive基础3

一、表的分区 大数据开发数据量较大,在进行数据查询计算时,需要对数据进行拆分,提升的查询速度 1-1 单个分区 单个分区是创建单个目录 -- 创建表指定分区,对原始数据进行分区保存 create table new_tb_user(id int,name string,ag…

健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)

健身管理小程序目录 基于微信开发健身管理小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 小程序端: 后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码…

第64天:服务攻防-框架安全CVE复现Apache ShiroApache Solr

目录 思维导图 案例一:Apache Shiro-组件框架安全 shiro反序列化 cve_2016_4437 CVE-2020-17523 CVE-2020-1957 案例二:Apache Solr-组件框架安全 远程命令执行 RCE(CVE-2017-12629) 任意文件读取 AND 命令执行&#xff08…

【银角大王——Django课程——ORM】

Django课程——ORM框架 Django 模型使用自带的 ORMORM 解析过程:ORM 对应关系表:下载mysqlclient安装包创建数据库——ORM只能操作表,无法创建数据库。连接数据库——修改settings中的DATABASESDjango操作表,在models.py文件中编写——操作表…

【QT进阶】Qt http编程之后端API测试工具postman使用介绍

往期回顾 【QT进阶】Qt Web混合编程之使用ECharts显示各类折线图等-CSDN博客 【QT进阶】Qt Web混合编程之实现ECharts数据交互动态修改-CSDN博客 【QT进阶】Qt http编程之http与https简单介绍-CSDN博客 【QT进阶】Qt http编程之后端API测试工具postman使用介绍 其实这个工具的…

李宏毅2022机器学习/深度学习 个人笔记(1)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲(选修):神奇宝贝分类 如图,为了估算某个样本属于某类的概率,在二分类问题中,我们需要计算红框所示的4个参数&#xff0…

19.表单输入绑定

表单输入绑定 在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给 JavaScript 中相应的变量。手动连接值绑定和更改事件监听器可能会很麻烦,v-model 指令帮我们简化了这一步骤 <template><input type"text" v-model"message">…

[阅读笔记16][Orca-2]Teaching Small Language Models How to Reason

接下来是Orca-2&#xff0c;这篇是微软在23年11月发表的论文&#xff0c;在Orca-1的基础上又进行了一些改进。 作者希望教会Orca-2各种推理策略&#xff0c;例如逐步思考、回忆然后回答、先回忆再推理再回答、直接生成回答等等策略。并且Orca-2应该能针对不同任务应该使用最合适…

node-sass报错

node-sass报错 解决方案 有几种解决方案&#xff0c;但感觉都是为了下载vsta_sdk这个工具的。 有的电脑下载C开发程序时可以顺带下载这个插件。 可以直接下载VS之后点击下载C桌面开发&#xff0c;但是有的不行&#xff0c;所以网上也就有另外一种方式&#xff0c;就是下载V…

第63天:服务攻防-框架安全CVE 复现DjangoFlaskNode.JSJQuery

目录 思维导图 案例一&#xff1a;JavaScript-开发框架安全-Jquery&Node node.js目录穿越 CVE-2021-21315命令执行 Jquery CVE-2018-9207 案例二&#xff1a;Python-开发框架安全-Django&Flask django cve_2019_14234 CVE-2021-35042 flask ssti 思维导图 案…