用住宿樓模型徹底理解Kubernetes架構(運行原理視角)

導讀:從樓宇建設到租客入住的全流程

想象我們正在建設一棟巨型智能住宿樓,從基礎設施搭建到租客入住管理,每個環節都對應Kubernetes的組件和概念。本文將按運行原理的先后順序,系統解析Kubernetes的23個核心組件與基本概念。

把 Kubernetes 想象成一棟現代化的住宿樓:樓層是節點(Node),房間是 Pod,住戶是容器(Container),前臺是 API Server,檔案室是 etcd,分配員是 Scheduler,樓管中心是 Controller Manager,樓層管理員是 kubelet,樓層交換機是 kube-proxy。Kubernetes 的核心目標,是讓系統的實際狀態不斷收斂到我們聲明的期望狀態。


一、基礎架構:樓宇的物理與網絡底座


1.Cluster(集群) - 整棟大樓

  • 定義:由多個Node(宿主機)組成的統一管理單元。
  • 類比:整棟住宿樓,包含所有樓層、房間和公共設施。
  • 核心能力
    • 統一門禁系統(RBAC權限控制)
    • 跨樓層自動災備(節點冗余)
    • 智能電梯調度(負載均衡)

2.Node(宿主機) - 樓層單元

  • 定義:承載Pod運行的物理或虛擬機器。
  • 類比:每層樓配備獨立水電系統(計算、存儲、網絡資源)。
  • 核心組件
    • kubelet:樓層配電箱,接收中央指令管理本層房間。
    • kube-proxy:樓層網絡交換機,處理租客與房間的網絡通信。
    • 容器運行時:房間的應急通道(如Docker、containerd)。

3、運行主線(先后順序)

  1. 建樓:準備 Cluster 與 Node,節點具備 kubelet、kube-proxy、容器運行時。
  2. 管樓:啟動控制面(etcd → API Server → Controller Manager → Scheduler)。
  3. 分房:用戶提交期望(如 Deployment),API Server 入檔;Scheduler 選樓層;kubelet 在目標節點創建 Pod。
  4. 入住:容器在 Pod 內運行,掛載配置與數據卷,探針維持健康。
  5. 服務入口:為 Pod 配門牌(Service),必要時開通外部前臺(Ingress)。
  6. 擴縮容與自愈:HPA 自動增減房間,控制器持續糾偏;發布與回滾通過 Deployment 實現。

二、控制平面:樓宇的管理中樞

3.API Server(前臺接待)

3.API Server(前臺接待)

  • 定義:集群的唯一控制入口,接收所有管理請求。
  • 類比:所有管理操作(入住、退房、維修)的統一前臺。
  • 運作機制
    • 驗證訪客身份(Authentication)
    • 登記簿實時更新(與etcd交互)
    • 接收并分發指令(如創建房間、調整服務)

4.etcd(入住登記簿)

  • 定義:分布式鍵值存儲系統,保存集群所有關鍵數據。
  • 類比:記錄每間房的租客信息、房間狀態、水電用量的電子登記簿。
  • 技術特征
    • 分布式賬本(Raft協議)
    • 實時更新(Watch機制)
    • 歷史記錄可追溯(版本化存儲)

5.Scheduler(房間分配管家)

  • 定義:負責將Pod分配到合適的Node上運行。
  • 類比:根據租客需求(資源、親和性)智能選擇樓層。
  • 調度策略
    • 資源最優匹配(Bin packing)
    • 特殊需求識別(節點親和性、污點)
    • 動態調整(資源不足時重新分配)

6.Controller Manager(運維巡檢組)

  • 定義:內置多種控制器,維持期望與實際一致,協調各Controller實現集群狀態與期望狀態一致。
  • 類比:巡檢與工單派發中心,24小時巡檢團隊,確保樓宇正常運行。
  • 核心Controller
    • Node Controller:監控樓層狀態(節點健康檢查)
    • ReplicaSet Controller:確保房間數量達標(Pod副本數)
    • DaemonSet Controller:確保每個節點都運行一個副本,每層樓標配服務(如消防設備)
    • Deployment Controller:管理房間升級(滾動更新)

三、工作負載:租客與房間的映射

7.Pod(標準客房)

  • 定義:最小部署單元,包含一個或多個容器。
  • 類比:每間房可容納多個租客(容器),共享衛浴(網絡、IPC)。
  • 關鍵特性
    • 共享存儲(Volume掛載)
    • 共享網絡(同一IP)
    • 生命周期綁定(容器同生共死)

8.Deployment(客房升級服務)

  • 定義:管理Pod副本和滾動更新。
  • 類比:升級房間時,逐步替換舊房(滾動更新)。
  • 運作流程
    1.創建新的Pod副本(新房)
    2.逐步替換舊Pod(舊房)
    3.支持版本回溯(Rollback)

9.ReplicaSet(房間維護計劃)

  • 定義:確保Pod副本數達標。
  • 類比:維護團隊確保每層樓的房間數量符合需求。
  • 與Deployment關系:Deployment通過ReplicaSet實現副本管理。

四、服務發現與網絡:樓宇的通信系統

10.Service(總機轉接臺)

  • 定義:穩定訪問Pod的入口,抽象網絡定義。
  • 類比:總機提供統一電話(ClusterIP),轉接租客到具體房間。
  • 類型
    • ClusterIP:內部總機號(僅樓內訪問)
    • NodePort:樓層外部專號(跨樓訪問)
    • LoadBalancer:公網總機(云服務商提供)

11.Ingress(智能門禁系統)

  • 定義:管理外部HTTP/HTTPS訪問的路由規則。
  • 類比:門禁系統根據訪客目的(URL路徑)分配到不同樓層或房間。
  • 核心功能
    • 路由規則(Host-based或Path-based)
    • TLS加密(訪客身份驗證)
    • 限流與熔斷(防止樓宇過載)

12.kube-proxy(樓層交換機)

  • 定義:節點上的網絡代理組件。
  • 類比:每層樓的網絡交換機,負責房間間的通信。
  • 實現方式
    • iptables(傳統方式)
    • IPVS(高性能方式)
    • 確保租客訪問到正確的房間(Pod)

五、存儲與配置:樓宇的資源管理

13.Volume(智能儲物柜)

  • 定義:Pod的持久化存儲抽象。
  • 類比:房間配套的儲物柜,支持租客存取物品。
  • 類型
    • emptyDir:臨時儲物格(Pod運行時有效)
    • PersistentVolume:公共儲物區(跨Pod共享)
    • 云存儲:保險箱(如AWS EBS、GCP PD)

14.ConfigMap(客房指南手冊)

  • 定義:存儲非敏感配置信息。
  • 類比:提供房間使用指南(如Wi-Fi密碼、服務時間)。
  • 使用方式
    • 環境變量注入(手冊內容直接告知)
    • 配置文件掛載(手冊實體放置在房間)

15.Secret(加密保險箱)

  • 定義:存儲敏感信息(如密碼、證書)。
  • 類比:樓層加密保險箱,需權限訪問。
  • 安全措施
    • Base64編碼(基礎加密)
    • 與ConfigMap類似但專用于敏感數據

六、命名空間與安全:樓宇的分區與權限

16.Namespace(樓層分區)

  • 定義:邏輯隔離的集群子單元。
  • 類比:整棟樓按樓層劃分(如A樓、B樓),租客僅在本樓層活動。
  • 用途
    • 多團隊隔離(開發、測試、生產)
    • 資源配額管理(樓層水電限額)

17.RBAC(權限門禁卡)

  • 定義:基于角色的訪問控制。
  • 類比:不同權限的門禁卡(前臺、巡檢員、租客)。
  • 核心概念
    • ClusterRole:整棟樓的管理權限(如全局管理員)
    • Role:特定樓層的權限(如樓層維護員)
    • RoleBinding:分配門禁卡給租客(權限綁定)

七、高級調度與擴展:樓宇的動態管理

18.Horizontal Pod Autoscaler (HPA)(自動擴容管家)

  • 定義:根據負載自動調整Pod副本數。
  • 類比:根據入住人數自動增減房間(如節假日擴容)。
  • 觸發條件
    • CPU/Memory利用率(房間擁擠度)
    • 自定義指標(如服務延遲)

19.Node Affinity & Taint(樓層選擇策略)

  • 定義:Pod與Node的親和性及反親和性規則。
  • 類比
    • Node Affinity:租客偏好某樓層(如帶陽臺)
    • Taint:樓層限制(如禁煙樓層拒絕吸煙租客)

八、典型架構圖解

九、總結:樓宇建設到云原生的映射


通過住宿樓模型,我們按運行原理的先后順序梳理了Kubernetes的:

  • 基礎架構:Cluster、Node
  • 控制平面:API Server、etcd、Scheduler、Controller Manager
  • 工作負載:Pod、Deployment、ReplicaSet
  • 服務發現:Service、Ingress、kube-proxy
  • 存儲與配置:Volume、ConfigMap、Secret
  • 安全與隔離:Namespace、RBAC、NetworkPolicy
  • 動態擴展:HPA、Node Affinity

這種類比學習法幫助開發者從樓宇建設到運維管理,完整理解Kubernetes的協同機制。建議在實際使用中持續完善這個心智模型。歡迎在評論區分享你的云原生"建筑"心得!


補充說明

  • Namespaces:相當于樓層分區,確保不同團隊或項目在同一大樓中互不干擾。
  • HPA:當某樓層入住率高時,自動增加房間(Pod副本)。
  • NetworkPolicy:設置樓層或房間的網絡訪問規則(如禁止跨樓層通信)。
  • DaemonSet:確保每層樓都有一個特定服務(如監控探頭)。
  • StatefulSet:管理有狀態的房間(如數據庫房間,需固定IP和存儲)。
  • Job:臨時任務(如打掃衛生),完成后關閉房間。

通過這種邏輯順序的梳理,可以清晰看到Kubernetes從基礎設施到應用管理的全鏈路設計。

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

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

相關文章

嘉銀科技基于阿里云 Kafka Serverless 提升業務彈性能力,節省成本超過 20%

作者:四牛 前言 云消息隊列 Kafka 版 Serverless 系列憑借其秒級彈性擴展、按需付費、輕運維的優勢,助力嘉銀科技業務系統實現靈活擴縮容,在業務效率和成本優化上持續取得突破,保證服務的敏捷性和穩定性,并節省超過 20…

RTOS 任務狀態與調度機制詳解

一、任務狀態概述在實時操作系統(RTOS)中,任務通常具有以下幾種基本狀態:Running(運行態):任務正在 CPU 上實際執行。單核系統中同一時刻最多只有一個任務處于運行態。Ready(就緒態&…

TDengine 特殊選擇函數 UNIQUE 用戶手冊

UNIQUE 函數用戶手冊 函數定義 UNIQUE(expr)功能說明 UNIQUE() 函數返回指定列去重后的值,功能類似于 SQL 中的 DISTINCT 關鍵字。對于相同的數據值,UNIQUE 函數會返回時間戳最小的那一條記錄。該函數會跳過 NULL 值。 版本要求 最低版本: v3.0.0.0…

新零售第一階段傳統零售商的困境突破與二次增長路徑:基于定制開發開源AI智能名片S2B2C商城小程序的實踐探索

摘要:新零售第一階段,傳統零售商面臨同質化競爭、用戶消費意愿低迷、線上電商分流等核心困境。本文以定制開發開源AI智能名片S2B2C商城小程序為切入點,結合阿里巴巴、某知名連鎖零售企業等實踐案例,分析其通過“AI智能推薦供應鏈協…

Spark SQL 之 Join Reorder

參考鏈接 https://www.cnblogs.com/fxjwind/p/14768975.html join Reorder src/main/scala/org/apache/spark/sql/catalyst/optimizer/CostBasedJoinReorder.scala private def reorder(plan: LogicalPlan, output: Seq[Attribute]): LogicalPlan = {<

牛客周賽 Round 109

比賽鏈接&#xff1a;牛客競賽_ACM/NOI/CSP/CCPC/ICPC算法編程高難度練習賽_牛客競賽OJ A-小紅的直角三角形_牛客周賽 Round 109 簽到題&#xff1a;用勾股定理即可通過此題&#xff08;需要注意對共線情況的判斷&#xff09; 代碼&#xff1a; // Problem: 小紅的直角三角…

[deepseek]LNK2001錯誤即單獨編譯匯編并鏈接

方案一&#xff1a;使用預編譯的 .obj 文件&#xff08;最簡單&#xff09; 如果匯編代碼不常改動&#xff0c;這是最省事的方法。手動編譯一次&#xff1a; 打開命令行&#xff0c;切換到 spoof.asm 所在目錄。使用你已有的匯編器&#xff08;或者下載一個單獨的 MASM 版本&am…

php學習 (第六天)

虛擬主機 一.什么是虛擬主機&#xff1f; 1.1 概念虛擬主機&#xff08;Web Hosting&#xff09;英文&#xff1a;Web Hosting / Shared Hosting核心概念&#xff1a; 一臺服務器被切分給多個用戶&#xff0c;每個人只使用服務器的一部分資源&#xff08;CPU、內存、帶寬、存儲…

AcousticsML聲學機器學習翻譯教程二(特征提取Feature Etraction)

源自&#xff1a;https://github.com/RAMshades/AcousticsM 特征提取 特征是可測量的屬性&#xff0c;作為系統的輸入。這些輸入與特定數據樣本相關&#xff0c;機器學習模型可通過解讀這些特征來提供預測。特征通常具有獨立性&#xff0c;并能提供樣本的具體細節。音頻特征示例…

【論文閱讀】Beyond Text: Frozen Large Language Models in Visual Signal Comprehension

本論文研究了能否利用一個“凍結”的LLM&#xff0c;直接理解視覺信號&#xff08;即圖片&#xff09;&#xff0c;而不用在多模態數據集上進行微調。核心思想是把圖片看作一種“語言實體”&#xff0c;把圖片轉換成一組離散詞匯&#xff0c;這些詞匯來自LLM自己的詞表。為此&a…

The Oxford-IIIT寵物圖像識別數據集(753M)

0、引言博主研究生期間做的是人工智能領域相關的深度學習模型研究&#xff0c;早期還沒定題的時候調研了大量方向。眾所周知&#xff0c;模型性能的好壞很大程度上依賴于數據集&#xff0c;因此我當時也接觸了大量數據集&#xff0c;這陣子將這些數據集匯總整理了一下&#xff…

jdbc DAO封裝及BaseDAO工具類

DAO概念 DAO&#xff1a;Data Access Object&#xff0c;數據訪問對象。 Java是面向對象語言&#xff0c;數據在Java中通常以對象的形式存在。一張表對應一個實體類&#xff0c;一張表的操作對應一個DAO對象&#xff01; 在Java操作數據庫時&#xff0c;我們會將對同一張表的增…

大模型應用開發2-SpringAI實戰

SpringAI整合了大多數大模型&#xff0c;而且對于大模型開發的三種技術架構都有比較好的封裝和支持&#xff0c;開發起來非常方便。不同的模型能夠接收的輸入類型、輸出類型不一定相同。SpringAI根據模型的輸入和輸出類型不同對模型進行了分類&#xff1a; 大模型應用開發大多…

TDengine 時序函數 DIFF 用戶手冊

DIFF 函數用戶手冊 函數概述 DIFF 函數用于計算數據列中相鄰兩行數據的差值&#xff0c;通常用于分析數據的變化趨勢和增量。該函數特別適用于監控智能電表數據的變化模式。 語法 SELECT DIFF(column_name [, ignore_negative]) FROM table_name;參數說明 column_name: 數…

清除gradle緩存的某個依賴

要清除 Gradle 緩存中的某個特定依賴&#xff0c;可以按照以下步驟操作&#xff1a;找到依賴在緩存中的路徑 Gradle 緩存的默認位置&#xff1a; Windows: C:\Users\<用戶名>\.gradle\caches\modules-2\files-2.1 macOS/Linux: ~/.gradle/caches/modules-2/files-2.1 路徑…

機器人控制器開發(驅動層——伺服驅動canopen的sdo和pdo)

文章總覽 一、核心區別&#xff1a;一句話概括 ? ??SDO&#xff08;服務數據對象&#xff09;??&#xff1a;像 ??“問詢/設置”??。用于??點對點、非周期??的參數配置和讀取。例如&#xff0c;設置電機增益、讀取當前位置等。??速度慢&#xff0c;但確保數據準…

返利APP排行榜數據實時更新:基于 WebSocket 與 Redis 的高并發數據推送技術

返利APP排行榜數據實時更新&#xff1a;基于 WebSocket 與 Redis 的高并發數據推送技術 大家好&#xff0c;我是阿可&#xff0c;微賺淘客系統及省賺客APP創始人&#xff0c;是個冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在返利APP運營中&#xff0c;用戶對排…

[論文閱讀] 人工智能 + 軟件工程 | 告別冗余HTML與高算力消耗:EfficientUICoder如何破解UI2Code的token難題

告別冗余HTML與高算力消耗&#xff1a;EfficientUICoder如何破解UI2Code的token難題 論文信息信息類別具體內容論文原標題EfficientUICoder: A Dual-Modal Token Compression Framework for UI-to-Code Generation with Multimodal Large Language Models論文鏈接https://arxiv…

【STM32項目開源】STM32單片機智能語音風扇控制系統

目錄 一、設計背景和意義 1.1設計背景&#xff1a; 1.2設計意義&#xff1a; 二、實物展示 三、硬件功能介紹 2.1 硬件清單&#xff1a; 2.2 功能介紹&#xff1a; 四、軟件設計流程圖 五、硬件PCB展示 六、軟件主函序展示 七、單片機實物資料 資料獲取 查看主頁介…

git clone vllm

這個錯誤不是 vLLM 本身的問題&#xff0c;而是 pip 在 clone GitHub 倉庫時失敗了&#xff1a; error: RPC failed; curl 16 Error in the HTTP2 framing layer fatal: expected flush after ref listing根因通常是&#xff1a; 網絡問題&#xff08;訪問 GitHub 被中斷 / 代理…