[k8s]--exec探针详细解析

在 Kubernetes 中,exec 探针是一种通过 在容器内执行命令 来检测容器健康状态的机制。它的核心逻辑是:执行命令后,若命令返回值为 0(表示成功),则认为容器健康;否则认为不健康


一、exec 探针的机制

  1. 执行命令
    Kubernetes 的 kubelet 会进入目标容器内部,运行指定的命令(如 cat /tmp/healthy)。

    • 命令的执行环境与容器内的 shell 环境一致(例如 /bin/sh)。
    • 如果命令执行成功(返回码为 0),探针认为容器健康;否则认为不健康。
  2. 触发时机

    • 存活探针(livenessProbe):定期检查容器是否存活。如果失败,Kubernetes 会重启容器。
    • 就绪探针(readinessProbe):检查容器是否准备好接收流量。如果失败,Pod 会被标记为 NotReady,不会接收流量。
    • 启动探针(startupProbe):在容器启动阶段使用,确保容器初始化完成后再启用其他探针。
  3. 资源消耗
    每次执行命令会启动一个新的进程,可能对容器性能有一定影响(尤其是高频探测时)。


二、exec 探针的检测方式

1. 基础用法

检测某个文件是否存在且可读:

readinessProbe:exec:command:- cat- /tmp/healthy
  • 逻辑cat 命令尝试读取 /tmp/healthy 文件。如果文件存在且可读(命令返回 0),则认为容器健康。
2. 组合命令

通过 Shell 脚本组合多个命令进行检测:

livenessProbe:exec:command:- sh- -c- "curl -s http://localhost:8080/healthz | grep 'OK'"
  • 逻辑:使用 sh -c 执行一段 Shell 命令,检查 HTTP 接口返回结果是否包含 “OK”。如果包含(命令返回 0),则认为健康。
3. 脚本检测

执行自定义脚本文件:

readinessProbe:exec:command:- /bin/sh- /opt/health_check.sh
  • 逻辑:运行 /opt/health_check.sh 脚本,脚本的退出码决定探针结果。

三、exec 探针的写法(YAML 配置)

1. 基本结构
<probe_type>:exec:command:- <command>- <arg1>- <arg2>...
  • <probe_type> 可以是 livenessProbereadinessProbestartupProbe
  • command 是一个数组,第一个元素是命令名,后续是参数。
2. 完整示例
apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: my-imagelivenessProbe:exec:command:- sh- -c- "curl -s http://localhost:8080/healthz | grep 'OK'"initialDelaySeconds: 5  # 容器启动后等待 5 秒开始探测periodSeconds: 10       # 每 10 秒探测一次
3. 关键参数说明
参数作用默认值
initialDelaySeconds容器启动后等待多少秒开始首次探测0
periodSeconds探测间隔时间(单位秒)10
timeoutSeconds探测超时时间(单位秒)1
failureThreshold连续失败多少次后判定为失败3(存活探针必须为 1)
successThreshold连续成功多少次后判定为成功1(存活探针必须为 1)

四、注意事项

  1. 局限性

    • 仅能验证命令退出码:无法直接检测服务的实际可用性(例如数据库连接是否正常)。
    • 误判风险:如果命令本身有缺陷(如文件存在但服务已崩溃),可能导致误判。
  2. 安全风险

    • 执行命令可能暴露敏感信息(如日志文件中的密码)。
    • 建议避免执行复杂或危险的命令。
  3. 替代方案

    • HTTP 探针:通过 HTTP 请求检测服务状态(更高效且通用)。
    • TCP 探针:通过 TCP 连接检测端口是否开放(适合无 HTTP 接口的服务)。
  4. 最佳实践

    • 简单场景:使用 cat /path/to/file 快速验证文件是否存在。
    • 复杂场景:结合 curlgrep 等工具验证服务接口。
    • 脚本封装:将复杂逻辑封装到脚本中,提高可维护性。

五、总结

特性说明
检测方式执行命令,通过退出码判断健康状态
适用场景文件存在性检查、简单命令验证、自定义脚本
优点灵活,可适配任意命令逻辑
缺点性能开销较大,依赖命令实现,可能误判

如果你需要更高效的健康检查,建议优先使用 HTTP 探针TCP 探针。接下来有时间也会研究一下这两种探针。

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

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

相关文章

偶数项收敛半径

&#x1f9e0; 背景&#xff1a;幂级数与收敛半径 一个幂级数&#xff08;power series&#xff09;&#xff1a; ∑ n 0 ∞ a n x n \sum_{n0}^{\infty} a_n x^n n0∑∞​an​xn 其收敛半径 R R R 表示该级数在哪些 x x x 的取值范围内收敛。其计算公式&#xff1a; 1 R …

从0开始学习语言模型--Day01--亲自构筑语言模型的重要性

在如今这个时代&#xff0c;人工智能俨然已经成了一个大家耳熟能详的词汇。随着技术的发展&#xff0c;它在不断地降低计算机领域一些工作的门槛&#xff0c;甚至有时候我们能看到一个可能六年前还需要从头开始学习的职业&#xff0c;现在只需要能掌握一个专属的小模型就可以拥…

【量化】策略交易之动量策略(Momentum)

【量化】策略交易之动量策略&#xff08;Momentum&#xff09; 一、动量策略&#xff08;Momentum Strategy&#xff09;原理 &#x1f449;&#x1f3fb; 核心思想&#xff1a; 强者恒强&#xff0c;弱者恒弱。 动量策略认为&#xff0c;过去一段时间涨得多的资产&#xff0c…

Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​

Cesium中通过 ​​Primitive 高效添加 ​​点、线、多边形、圆、椭圆、球、模型​​ 等地理要素&#xff0c;以下是各类地理要素的高效添加方式&#xff1a; 一、公告板 1. 创建 BillboardCollection 并添加到场景​ const billboards viewer.scene.primitives.add(new Ces…

volka烹饪常用英语

1. 视频开场与主题介绍 Today, we are going to learn English while cooking. Fire. In this video, I’m going to continue to teach you the 3,000 most common English words that will allow you to understand 95% of spoken English. And we are going to be preparin…

同旺科技 USB TO SPI / I2C适配器(专业版)--EEPROM读写——B

所需设备&#xff1a; 1、USB 转 SPI I2C 适配器&#xff1b;内附链接 2、24C64芯片&#xff1b; 适应于同旺科技 USB TO SPI / I2C适配器专业版&#xff1b; 烧写EEPROM数据、读取EEPROM数据、拷贝EEPROM数据、复制产品固件&#xff0c;一切将变得如此简单&#xff01; 1…

Linux下成功编译CPU版Caffe的保姆级教程(基于Anaconda Python3.8 包含完整可用Makefile.config文件)

目录 前言 一、环境准备 1. 系统要求 2. 安装必要依赖 二、Anaconda环境配置 1. 安装Anaconda 2. 创建专用Python环境 3. 安装必要的Python包 三、获取Caffe源代码 四、配置编译选项 1. 修改Makefile.config 2. 修改Makefile 3. 修改CMakeLists.txt&#xff08;如…

shell三剑客

了解三剑客 三剑客指的是: grep、sed和awk这三个在linux系统中常用的命令行工具 shell三剑客 grep&#xff1a; 主要用于查找和过滤特定文本 sed&#xff1a;是一个流编辑器&#xff0c;可以对文本进行增删改查 awk&#xff1a;是一个文本处理工具&#xff0c;适合对列进行处…

创客匠人视角:知识IP变现的主流模式与创新路径

知识IP变现赛道正从“野蛮生长”走向“精细化运营”&#xff0c;如何在流量红利消退期实现可持续变现&#xff1f;创客匠人基于服务数万职业教育IP的实践经验&#xff0c;总结出一套兼顾效率与长尾价值的变现逻辑&#xff0c;为行业提供了可参考的路径。 主流变现模式&#x…

【嵌入式人工智能产品开发实战】(二十三)—— 政安晨:将小智AI代码中的display与ota部分移除

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 本篇目标 第一步 ✅ 修改说明 &#x1f527; 修改后的代码节选 &#x1f4cc; 总…

从sdp开始到webrtc的通信过程

1. SDP 1.1 SDP的关键点 SDP&#xff08;Session Description Protocol&#xff09;通过分层、分类的属性字段&#xff0c;结构化描述实时通信会话的 会话基础、网络连接、媒体能力、安全策略、传输优化 等核心信息&#xff0c;每个模块承担特定功能&#xff1a; 1. 会话级别…

PHP、Apache环境中部署sqli-labs

初始化数据库的时候&#xff0c;连接不上 检查配置文件里面的数据库IP、用户名、密码是否正确 mysqli_connect函数报错 注意要下载兼容PHP7的sqli-labs版本 1、下载sqli-labs工程 从预习资料中下载。 文件名&#xff1a;sqli_labs_sqli-for7.zip 2、配置数据库 把下载好的…

Spring AI Alibaba Graph 实践

本文中将阐述下 AI 流程编排框架和 Spring AI Alibaba Graph 以及如何使用。 1. Agent 智能体 结合 Google 和 Authropic 对 Agent 的定义&#xff1a;Agent 的定义为&#xff1a;智能体&#xff08;Agent&#xff09;是能够独立运行&#xff0c;感知和理解现实世界并使用工具…

Server 11 ,⭐通过脚本在全新 Ubuntu 系统中安装 Nginx 环境,安装到指定目录( 脚本安装Nginx )

目录 前言 一、准备工作 1.1 系统要求 1.2 创建目录 1.3 创建粘贴 1.4 授权脚本 1.5 执行脚本 1.6 安装完成 二、实际部署 2.1 赋予权限 2.2 粘贴文件 2.3 重启服务 三、脚本解析 步骤 1: 安装编译依赖 步骤 2: 创建安装目录 步骤 3: 下载解压源码 步骤 4: 配置…

层压板选择、信号完整性和其他权衡

关于印刷电路材料&#xff0c;我有很多话要说&#xff0c;我觉得这非常有趣&#xff0c;而且所有候选人都带有“材料”这个词。无论出现在顶部的东西都是我最终选择的。我实际上会描述决策过程&#xff0c;因为我认为这很有趣&#xff0c;但首先要强调将我带到这里的职业旅程。…

几种经典排序算法的C++实现

以下是几种经典排序算法的C实现&#xff0c;包含冒泡排序、选择排序、插入排序、快速排序和归并排序&#xff1a; #include <iostream> #include <vector> using namespace std;// 1. 冒泡排序 void bubbleSort(vector<int>& arr) {int n arr.size();f…

[学习] 多项滤波器在信号插值和抽取中的应用:原理、实现与仿真(完整仿真代码)

多项滤波器在信号插值和抽取中的应用&#xff1a;原理、实现与仿真 文章目录 多项滤波器在信号插值和抽取中的应用&#xff1a;原理、实现与仿真引言 第一部分&#xff1a;原理详解1.1 信号插值中的原理1.2 信号抽取中的原理1.3 多项滤波器的通用原理 第二部分&#xff1a;实现…

Linux中source和bash的区别

在Linux中&#xff0c;source和bash&#xff08;或sh&#xff09;都是用于执行Shell脚本的命令&#xff0c;但它们在执行方式和作用域上有显著区别&#xff1a; 1. 执行方式 bash script.sh&#xff08;或sh script.sh&#xff09; 启动一个新的子Shell进程来执行脚本。脚本中的…

解决文明6 内存相关内容报错EXCEPTION_ACCESS_VIOLATION

我装了很多Mod&#xff0c;大约五六十个&#xff0c;经常出现内存读写异常的报错。为了这个问题&#xff0c;我非常痛苦&#xff0c;已经在全球各大论坛查询了好几周&#xff0c;终于在下方的steam评论区发现了靠谱的解答讨论区。 https://steamcommunity.com/app/289070/dis…

IIS 实现 HTTPS:OpenSSL证书生成与配置完整指南

参考 IIS7使用自签名证书搭建https站点(内网外网都可用) windows利用OpenSSL生成证书,并加入IIS 亲测有效 !!! IIS 配置自签名证书 参考:IIS7使用自签名证书搭建https站点(内网外网都可用) 亲测可行性,不成功。 IIS 配置OpenSSL 证书 √ OpenSSL 下载 https://slp…