20250718-4-Kubernetes 應用程序生命周期管理-Pod對象:實現機制_筆記

一、Pod對象



1. 資源共享實現機制
1)共享網絡



  • 基本概念
    • 實現方式:通過將業務容器網絡加入到負責網絡的容器(infra container)實現網絡共享
    • 核心特點:共享網絡協議棧(包括TCP/IP、MAC地址、端口等),打破網絡命名空間隔離
    • 典型示例:Nginx主容器與busybox邊車容器共享infra container網絡,可通過localhost互相訪問
  • 實現機制
    • 基礎鏡像:使用pause:3.4.1鏡像創建infra container
    • 容器關系:所有業務容器(如Nginx、busybox)都會關聯到同一個infra container
    • 隱藏特性:在k8s層面不可見,需通過節點docker ps命令查看
  • 實踐驗證
    • 驗證方法:
      • 通過docker ps | grep pod-web查看實際運行的三個容器(含隱藏的infra container)
      • infra container命名規則:k8s_POD_<pod名稱>_<命名空間>_<ID>
    • 鏡像特征:
      • 體積僅幾MB大小
      • 運行簡單程序保持容器不退出
      • 所有Pod都會自動創建對應的infra container
  • 關鍵要點
    • 識別特征:鏡像名稱為registry.aliyuncs.com/google_containers/pause:3.4.1
    • 核心作用:專門負責維護Pod的網絡棧
    • 部署特點:每個Pod對應一個獨立的infra container實例
2)共享存儲



  • Pod共享網絡與存儲示例
    • 共享網絡機制
      • 實現方式:將業務容器網絡加入到"負責網絡的容器"中實現網絡共享
      • 訪問驗證:通過127.0.0.1可以訪問另一個容器,證明網絡命名空間已共享
      • 典型應用:nginx+php架構中,php可以通過127.0.0.1:9000被nginx訪問
    • 共享存儲機制
      • 數據卷類型:使用emptyDir實現容器間共享存儲
      • 掛載配置:
        • 主容器nginx掛載到/usr/share/nginx/html
        • 邊車容器busybox掛載到/data
      • 驗證方法:在邊車容器/data目錄創建文件,主容器能立即讀取
    • 配置示例解析
      • 容器順序:容器定義順序不影響角色,完全由業務功能決定
      • volumeMounts:通過相同名稱的volume實現目錄共享
      • emptyDir特性:臨時存儲空間,Pod刪除后數據丟失
    • 實際操作演示
      • 驗證步驟:
        • 在busybox容器的/data目錄創建index.html
        • 通過wget 127.0.0.1驗證nginx能訪問該文件
        • 在nginx容器修改文件內容,busybox容器同步可見
      • 應用場景:日志采集場景中,主容器寫日志到共享目錄,邊車容器負責日志收集
    • 常見問題解答
      • 網絡隔離:默認每個容器有獨立網絡命名空間,共享網絡打破這種隔離
      • 多端口暴露:一個Pod可以暴露多個端口,通過Service配置多個targetPort
      • 權限問題:共享目錄的讀寫權限由掛載配置決定,不受容器角色限制
      • 與Docker區別:原理類似Docker的volume共享,但由K8s統一管理
2. 管理命令
1)Pod創建
  • YAML方式:通過kubectl apply -f pod.yaml命令創建Pod,其中YAML文件需包含apiVersion、kind、metadata和spec等必要字段
  • 命令行方式:使用kubectl run nginx --image=nginx直接創建運行nginx鏡像的Pod
2)Pod查看
  • 列表查看:kubectl get pods命令可列出當前所有Pod的基本信息
  • 詳情查看:kubectl describe pod <Pod名稱>可查看指定Pod的詳細配置和狀態信息
3)日志管理
  • 基礎日志:kubectl logs <Pod名稱>查看Pod的標準輸出日志
  • 容器指定:添加-c CONTAINER參數可查看多容器Pod中特定容器的日志
  • 實時跟蹤:使用-f參數可以實時跟蹤日志輸出(類似tail -f功能)
4)容器交互
  • 終端接入:kubectl exec <Pod名稱> [-c CONTAINER] -- bash命令可進入Pod容器的bash終端
  • 多容器選擇:對于多容器Pod,需要通過-c參數指定要進入的容器名稱
5)Pod刪除
  • 刪除操作:使用kubectl delete pod <Pod名稱>命令可刪除指定的Pod資源
  • 注意事項:刪除后Kubernetes可能會根據控制器配置自動重建Pod
二、知識小結

知識點

核心內容

考試重點/易混淆點

難度系數

Pod網絡共享機制

通過infra container實現網絡協議棧共享(TCP/IP/MAC/端口等),打破網絡命名空間隔離

共享原理:所有容器加入同一個infra container網絡

???

Pod數據卷共享

使用emptyDir卷實現多容器目錄共享(如Nginx日志目錄與邊車容器采集目錄)

驗證方法:在邊車容器修改文件后主容器可實時讀取

??

邊車容器(Sidecar)模式

主容器(如Nginx)與輔助容器(如日志采集器)通過共享網絡/存儲協同工作

典型場景:Nginx+PHP分離部署時通過127.0.0.1:9000通信

????

infra container

每個Pod隱藏的基礎容器,使用k8s.gcr.io/pause鏡像維護共享網絡

關鍵特征:鏡像體積小(僅幾MB),保持常駐不退出

??

Service多端口暴露

一個Pod內多個容器端口可通過Service同時暴露(如Nginx 80和輔助服務8080)

配置要點:在YAML中定義多個targetPort

???

網絡驗證方法

在邊車容器通過127.0.0.1訪問主容器服務(如wget 127.0.0.1:80)

易錯點:誤認為需配置獨立IP

??

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

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

相關文章

防爆手機是什么?能用普通手機改裝嗎?

在石油開采平臺的井架之上&#xff0c;在化工車間的反應釜旁&#xff0c;在煤礦深達千米的巷道中&#xff0c;一群特殊的工作人員正使用著看似普通的通訊設備。這些設備外殼上醒目的Ex防爆認證標志&#xff0c;揭示著其與眾不同的身份——防爆手機。這類專為易燃易爆環境設計的…

gem install報錯解析

報錯內容 [rootlocalhost ~]# gem install bundler Fetching: bundler-2.6.9.gem (100%) ERROR: Error installing bundler:bundler requires Ruby version > 3.1.0. The current ruby version is 2.5.0.解決方案&#xff08;任選其一&#xff09; 這個錯誤表明你當前的 Ru…

css 如何實現大屏4個占位 中屏2個 小屏幕1個

1、 使用grid.container {display: grid;grid-template-columns: repeat(4, 1fr);gap: 20px;border: 1px solid red;width: 400px;height: 400px;}media (max-width: 768px) {.container {grid-template-columns: 1fr;}}media (min-width: 768px) and (max-width: 992px) {.con…

Redis學習系列之—— JDHotKey 熱點緩存探測系統

一、為什么需要熱點緩存探測 在回答這個問題前&#xff0c;我們先考慮一下&#xff1a;為什么光用 Redis 還不夠&#xff0c;還需要使用本地緩存&#xff1f; 一般來說&#xff0c;Redis 集群的性能能抗住幾十萬并發&#xff0c;能夠應付大部分情況。但對于一些頭部 APP&#x…

Linux 安全加固

Linux 安全加固需要從??用戶權限、系統服務、網絡防護、日志審計、文件系統、訪問控制??等多個維度入手&#xff0c;目標是減少攻擊面、限制未授權訪問、提升系統健壯性。以下是??詳細步驟實操示例??&#xff0c;覆蓋主流 Linux 發行版&#xff08;如 CentOS/Ubuntu&am…

【Docker#2】容器歷史發展 | 虛擬化實現方式

一、前言 – 容器技術發展史 容器技術是現今計算技術的重要組成部分&#xff0c;其發展歷程可以追溯到很早的計算機系統提供的進程隔離工具。以下是容器技術的發展歷程&#xff0c;其中涵蓋了從早期的進程隔離技術到現代云計算和云原生的演變&#xff1a; ① Jail 時代 1979 年…

React + Mermaid 圖表渲染消失問題剖析及 4 種代碼級修復方案

Mermaid 是一個流行的庫&#xff0c;它可以將文本圖表&#xff08;例如 graph LR; A-->B;&#xff09;轉換為 SVG 圖表。在靜態 HTML 頁面中&#xff0c;Mermaid 會查找 <pre class"mermaid"> 代碼塊&#xff0c;并在頁面加載時將它們替換為渲染后的圖表。它…

[Element]修改el-pagination背景色

[Element]修改el-pagination背景色 代碼 <el-pagination:current-page.sync"queryParams.current":page-size.sync"queryParams.size":page-sizes"[10, 20, 50, 100]"layout"prev, pager, next, jumper, sizes":total"queryP…

Docker 可用鏡像列表

Docker 鏡像源列表&#xff08;7月15日更新-長期&免費&#xff09;_dockerhub國內鏡像源列表-CSDN博客

低代碼可視化工作流的系統設計與實現路徑研究

一、背景分析在數字化轉型不斷深化的背景下&#xff0c;企業業務流程呈現出高度定制化與動態調整的趨勢&#xff0c;傳統信息系統在開發周期、實施成本與擴展能力上的局限性日益凸顯&#xff0c;已難以支撐快速響應和敏捷迭代的實際需求。面向這一現實挑戰&#xff0c;基于 BPM…

mac mlx大模型框架的安裝和使用

mlx是apple平臺的大模型推理框架&#xff0c;對mac m1系列處理器支持較好。 這里記錄mlx安裝和運行示例。 1 安裝mlx框架 conda create -n mlx python3.12 conda activate mlx pip install mlx-lm 2 運行mlx測試例 以下是測試程序&#xff0c;使用方法和hf、vllm等推理框架基…

JAVA 使用Apache POI合并Word文檔并保留批注的實現

一、需求背景 在實際工作中&#xff0c;我們經常需要將多個Word文檔合并成一個文件。但當文檔中包含批注&#xff08;Comments&#xff09;時&#xff0c;傳統的復制粘貼會導致批注丟失或引用錯亂。本文將介紹如何通過Java和Apache POI庫實現保留批注及引用關系的文檔合并功能。…

Linux的服務管理工具:`systemd`(`systemctl`)和`SysVinit ` 筆記250718

Linux的服務管理工具:systemd(systemctl)和SysVinit 筆記250718 Linux的服務管理工具 Linux 的服務管理工具隨著發行版和初始化系統的發展而演變。以下是主要的服務管理工具及其對應的初始化系統&#xff1a; 1. systemd (現代主流標準) 初始化系統&#xff1a; 是絕大多數…

Couchbase 可觀測性最佳實踐

Couchbase 介紹 Couchbase 是一個開源的分布式 NoSQL 數據庫&#xff0c;專為高性能和高可擴展性設計&#xff0c;適用于實時數據處理的企業應用。它結合鍵值存儲和文檔數據庫的優勢&#xff0c;支持 JSON 文檔存儲&#xff0c;并通過 N1QL&#xff08;類 SQL 查詢語言&#x…

構建基于MCP的LLM聊天機器人客戶端開發指南

引言 在當今人工智能技術快速發展的時代&#xff0c;大型語言模型(LLM)已成為構建智能應用的核心組件。MCP(Modular Conversational Platform)作為一個強大的對話平臺&#xff0c;為開發者提供了將LLM能力與自定義工具集成的標準化方式。本文將詳細介紹如何使用Python開發一個…

接口測試的原則、用例與流程詳解

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、接口的介紹軟件測試中&#xff0c;常說的接口有兩種&#xff1a;圖形用戶接口&#xff08;GUI&#xff0c;人與程序的接口&#xff09;、應用程序編程接口&am…

ubuntu 22.02 帶外進單用戶拯救系統

不停地按 F7 &#xff0c;然后進到 menu &#xff0c;選擇 ubuntu &#xff0c;然后按下 ESC &#xff0c;然后瞬間會刷一個 ubuntu 的選項&#xff08;默認是在第一的位置&#xff0c;直接快速按下 e&#xff09;即可進入單用戶模式。 找到類似 linux /boot/vmlinuz-xxx rootU…

Java-75 深入淺出 RPC Dubbo Java SPI機制詳解:從JDK到Dubbo的插件式擴展

點一下關注吧&#xff01;&#xff01;&#xff01;非常感謝&#xff01;&#xff01;持續更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持續更新中&#xff01;&#xff08;長期更新&#xff09; AI煉丹日志-30-新發布【1T 萬億】參數量大模型&#xff01;Kim…

【橘子分布式】gRPC(編程篇-上)

一、簡介 我們之前學習了grpc的一些理論知識&#xff0c;現在我們開始正式進入編程環節。 我們的項目結構和之前的thrift結構還是一樣的&#xff0c;一個common,一個client&#xff0c;一個server。只不過在grpc這里common它一般叫做api模塊。還是放置一些公共的實體類&#x…

IOS 18下openURL 失效問題

突然有一天有玩家反饋說應用打開外部連接打不開了&#xff0c;于是查了一下&#xff0c;報錯&#xff1a;BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(_:) needs to migrate to the non-deprecated UIApplication.open(_:options:completionHandler:). Force…