[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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84890.shtml
英文地址,請注明出處:http://en.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…