k8s的service、deployment、探針詳解

?1.k8s組成圖

?2.service和deployment的流量轉發圖

# Deployment 定義容器端口
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp
spec:template:spec:containers:- name: nginximage: nginxports:- containerPort: 80  # 容器監聽 80name: http         # 端口命名(可選)---
# Service 定義端口映射
apiVersion: v1
kind: Service
metadata:name: my-service
spec:ports:- port: 8080         # Service 暴露 8080targetPort: http    # 轉發到容器中名為 "http" 的端口(即80)selector:app: myapp

3.pod的生命周期

Pending

- Pod 已被 API Server 接收,但尚未被調度到節點
- 可能原因:資源不足、鏡像下載中、節點選擇器不匹配

kubectl describe pod web1?查看?Events?中的具體原因(如?Insufficient cpu/memory

Init:0/1

- 初始化容器正在執行(示例中總共有1個初始化容器,當前完成0個)
- 數字格式:完成數/總數

檢查初始化容器的日志:
kubectl logs web1 -c <init-container-name>

PodInitializing

- 所有初始化容器已成功完成
- 主容器正在啟動(但尚未進入 Ready 狀態)

通常短暫(秒級),若長時間卡在此狀態,檢查主容器的鏡像拉取或啟動命令問題

Running

- 主容器已成功啟動并持續運行
-?1/1?表示:1個容器已就緒,共1個容器

可通過?kubectl exec?進入容器調試

4.容器的探針執行流程

1. Deployment 的局限性

Deployment 主要解決以下問題:

  • 副本管理:確保指定數量的 Pod 副本運行(通過?replicas?字段)。

  • 滾動更新:支持無縫升級和回滾。

  • 故障恢復:當 Pod?完全崩潰時,Deployment 會重新創建 Pod。

但它無法解決

  • 應用邏輯層面的健康狀態:Pod 進程可能正在運行,但應用內部已死鎖或無響應。

  • 依賴就緒問題:Pod 已啟動,但依賴的數據庫/緩存尚未準備好。

  • 啟動順序問題:應用需要較長時間初始化(如 Java 應用啟動慢)。

2. 探針的核心作用

探針彌補了 Deployment 的不足,提供細粒度的健康控制:

探針類型解決的問題示例場景
Liveness Probe解決"進程在但服務掛"的問題,觸發重啟。線程池耗盡、內存泄漏、死鎖等故障導致無響應
Readiness Probe解決"臨時不可用"的問題,控制流量。要加載大量的配置文件、建立數據庫連接池、初始化緩存等操作
Startup Probe保護慢啟動應用,避免被 Liveness Probe 誤殺。某個模型啟動需要較長的時間加載
containers:
- name: myapp# 存活探針(Liveness Probe):檢測容器是否處于運行但不可用的狀態(如死鎖),失敗時會重啟容器livenessProbe:httpGet:                  # 使用 HTTP GET 請求檢測path: /internal/health  # 健康檢查接口路徑(需由應用實現)port: 8080              # 檢測的容器端口failureThreshold: 3       # 連續失敗 3 次才判定為故障(默認值)# initialDelaySeconds: 0  # (未顯式設置)容器啟動后立即開始檢測(生產環境建議設置緩沖時間)# periodSeconds: 10       # (未顯式設置)默認每10秒檢測一次# timeoutSeconds: 1       # (未顯式設置)默認檢測超時時間為1秒# 就緒探針(Readiness Probe):檢測容器是否準備好接收流量,失敗時從 Service 負載均衡中移除該 PodreadinessProbe:httpGet:path: /api/ready        # 就緒檢查接口路徑(可與健康檢查分開)port: 8080periodSeconds: 5          # 每 5 秒檢測一次(比存活探針更頻繁)# successThreshold: 1     # (未顯式設置)默認成功1次即標記為就緒# failureThreshold: 3     # (未顯式設置)默認連續失敗3次才判定為未就緒# 啟動探針(Startup Probe):保護慢啟動應用,避免在初始化期間被存活探針誤殺startupProbe:httpGet:path: /internal/health  # 通常與存活探針使用相同接口port: 8080failureThreshold: 30      # 允許的最大失敗次數(30次)periodSeconds: 10         # 每 10 秒檢測一次# 總啟動時間 = failureThreshold × periodSeconds = 30 × 10 = 300秒(5分鐘)# 在此期間,存活探針和就緒探針不會執行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90573.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【PostgreSQL教程】PostgreSQL中json類型與jsonb類型的區別

博主介紹:?全網粉絲23W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

牛客刷題記錄01

除2&#xff01; 目錄 除2&#xff01; 題目描述&#xff1a; ?編輯 題目解析&#xff1a; 代碼實現&#xff1a; 數組中兩個字符串的最小距離__牛客網 題目描述&#xff1a; 題目解析&#xff1a; 代碼實現&#xff1a; 除2&#xff01; 題目描述&#xff1a; 給一個…

Docker Compose UI遠程訪問教程:結合貝銳花生殼實現內網穿透

對于很多剛接觸Docker的用戶來說&#xff0c;命令行操作總帶著一絲“勸退感”。尤其是要在Windows上部署服務、開放端口、配置參數時&#xff0c;稍有不慎就容易出錯。有沒有辦法像網頁后臺一樣&#xff0c;用圖形界面來管理Docker項目呢&#xff1f;答案是&#xff1a;有&…

HF83311_VB1/HF83311Q_VB1:高性能USB HiFi音頻解碼器固件技術解析

引言隨著高品質音頻體驗需求的不斷增長&#xff0c;音頻解碼器固件的性能和功能成為決定音頻設備品質的關鍵因素。本文將介紹一款基于XMOS XU316技術的高性能USB HiFi音頻解碼器固件——HF83311_VB1/HF83311Q_VB1&#xff0c;這是一款專為USB HiFi音頻應用設計的軟件解決方案。…

[ComfyUI] -入門1-ComfyUI 是什么?比 Stable Diffusion WebUI 強在哪?

ComfyUI 是一個開源的、節點可視化界面,用于構建與執行 Stable Diffusion 圖像生成流程。它把復雜的生成過程拆解為許多“節點”(如提示編碼、采樣器、控制網絡等),用戶通過連接節點,就能自由編排工作流 。這種設計適合開發者與進階用戶,更便于微調、多分支與復用流程。 …

[python][flask]flask接受get或者post參數

在 Flask 中&#xff0c;可以通過 request 對象來獲取客戶端通過 GET 或 POST 方法發送的參數。以下是如何在 Flask 中接收 GET 和 POST 參數的詳細說明&#xff1a;1. 接收 GET 參數GET 請求的參數通常通過 URL 的查詢字符串傳遞。例如&#xff0c;對于 URL http://example.co…

Creo 模塊眾多,企業如何按需靈活分配許可證資源?

在數字化設計與智能制造深入發展的當下&#xff0c;企業 CAD/CAE 工具的精細化管理越來越重要。Creo&#xff0c;作為 PTC 旗下一體化 3D CAD 平臺&#xff0c;以其模塊化、可擴展的產品架構&#xff0c;廣泛應用于機械、裝備、汽車、航空航天等行業。其豐富的模塊庫覆蓋建模設…

【c++】提升用戶體驗:問答系統的交互優化實踐——關于我用AI編寫了一個聊天機器人……(12)

本期依舊使用豆包輔助完成代碼。從功能到體驗的轉變上個版本已經實現了問答系統的核心功能&#xff1a;基于 TF-IDF 算法的問題匹配和回答。它能夠讀取訓練數據&#xff0c;處理用戶輸入&#xff0c;并返回最相關的答案。但在用戶體驗方面還有很大提升空間。讓我們看看改進版做…

Android UI 控件詳解實踐

一、UI 開發基礎概念&#xff08;初學者必看&#xff09; 在學習具體控件前&#xff0c;先理解以下核心概念&#xff0c;能大幅降低后續學習難度&#xff1a; 1. View 與 ViewGroup 的關系 View&#xff1a;所有 UI 控件的基類&#xff08;如 Button、TextView&#xff09;&…

關于linux運維 出現高頻的模塊認知

一、Linux 基礎核心&#xff08;必掌握&#xff09;核心工具&#xff1a;Shell 腳本、Systemd、用戶權限管理、日志分析&#xff08;journalctl、rsyslog&#xff09;企業需求&#xff1a;中小型公司&#xff1a;需獨立完成系統部署、故障排查&#xff0c;對腳本開發&#xff0…

手語式映射:Kinova Gen3 力控機械臂自適應控制的研究與應用

近日&#xff0c;美國明尼蘇達大學研究團隊在《從人手到機械臂&#xff1a;遙操作中運動技能具身化研究》中&#xff0c;成功開發出基于??Kinova的7軸力控機械臂Gen3的智能控制系統。這項創新性技術通過人工智能算法&#xff0c;實現了人類手臂動作到機械臂運動的精準映射&am…

P5535 【XR-3】小道消息

題目描述 小 X 想探究小道消息傳播的速度有多快&#xff0c;于是他做了一個社會實驗。 有 n 個人&#xff0c;其中第 i 個人的衣服上有一個數 i1。小 X 發現了一個規律&#xff1a;當一個衣服上的數為 i 的人在某一天知道了一條信息&#xff0c;他會在第二天把這條信息告訴衣…

ChatGPT Agent架構深度解析:OpenAI如何構建統一智能體系統

引言&#xff1a;AI智能體的范式躍遷 2025年7月17日&#xff0c;OpenAI發布的ChatGPT Agent標志著對話式AI從“被動應答”向主動執行的歷史性轉變。這款融合Operator網頁操作與Deep Research信息分析能力的新型智能體&#xff0c;通過統一架構設計實現了復雜任務的端到端自主執…

計算機網絡(第八版)— 第2章課后習題參考答案

2-01 物理層要解決哪些問題&#xff1f;物理層的主要特點是什么&#xff1f;答&#xff1a;物理層要解決的主要問題&#xff1a;&#xff08;1&#xff09;物理層要盡可能地屏蔽掉物理設備和傳輸媒體&#xff0c;通信手段的不同&#xff0c;使數據鏈路層感覺不到這些差異&#…

Hive【Hive架構及工作原理】

?博客主頁&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客內容》&#xff1a;.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 &#x1f4e2;博客專欄&#xff1a; https://blog.csdn.net/m0_63815035/cat…

數據管理能力成熟度評估模型(DCMM)詳解

數據管理能力成熟度評估模型(DCMM)詳解 1. DCMM概述 數據管理能力成熟度評估模型(Data Management Capability Maturity Assessment Model, DCMM)是我國首個數據管理領域的國家標準(GB/T 36073-2018)&#xff0c;由國家工業信息安全發展研究中心牽頭制定。該模型為我國企業數據…

學習C++、QT---34(使用QT庫實現串口調試助手01:解決串口調試助手的UI)

&#x1f31f; 嗨&#xff0c;我是熱愛嵌入式的濤濤同學&#xff01;每日一言別害怕改變&#xff0c;走出舒適圈才能遇見更好的自己。串口調試助手項目好的現在我們來學習串口調試助手的項目&#xff0c;我們依舊是項目引領學習好的我們最后就是要做成一個類似我們市面上的串口…

Dockerfile 文件及指令詳解

什么是Dockerfile 文件Dockerfile 文件是用于構建 docker 鏡像的腳本文件&#xff0c;由一系列的指令構成。通過 docker build 命令構建鏡像時&#xff0c;Dockerfile 文件中的指令會由上到下執行&#xff0c;每條 指令都將會構建出一個鏡像層&#xff0c;這就是鏡像的分層。因…

主流Java Redis客戶端對決:Jedis、Lettuce與Redisson性能特性深度評測

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 持續學習&#xff0c;不斷…

刷題日記0725

今日計劃5道。2/5晚上被一些事影響了心神不寧&#xff0c;再加上感覺睡前做完時間有點緊&#xff0c;逃避的念頭出現了。代碼意思不進腦子了。做一道是一道。21. 合并兩個有序鏈表默認構造??&#xff1a;用于創建??值為0的孤立節點??&#xff08;不連接其他節點&#xff…