容器基礎知識2-K8s 和 Docker 的關系與管理邏輯詳解

K8s 和 Docker 的關系與管理邏輯詳解

一、先搞懂:Docker 和 K8s 分別是做什么的?
  • Docker(容器工具):好比「集裝箱工廠」,負責把應用和依賴打包成標準化容器(類似集裝箱),讓應用能在任何環境中運行(一次打包,到處運行)。
  • K8s(Kubernetes,容器編排工具):好比「集裝箱碼頭調度系統」,當有大量集裝箱(容器)需要管理時,K8s 負責調度、分配資源、保證容器正常運行,解決單個 Docker 無法處理的「大規模集群管理」問題。
二、K8s 與 Docker 的關系:不是替代,而是「分工合作」
  • Docker 是基礎,K8s 是上層調度
    • Docker 解決「如何打包和運行單個容器」的問題。
    • K8s 解決「如何在集群中管理成千上萬個容器」的問題,比如:
      • 容器掛了自動重啟(自愈);
      • 按流量自動增減容器數量(擴縮容);
      • 把容器分配到最合適的服務器上(調度);
      • 讓多個容器之間能互相訪問(服務發現)。
三、K8s 如何管理 Docker?核心組件與流程

K8s 不直接管理 Docker,而是通過中間層?Container Runtime Interface(CRI,容器運行時接口)?間接控制。以 Docker 為例,其管理邏輯如下:

1. K8s 的「調度 - 執行」架構

K8s 控制平面(Master)? ? ? ?→ 工作節點(Worker Node)

├─ 調度容器去哪運行? ? ? ? ? ? ? ? └─ Docker 負責實際運行容器

  • 控制平面(Master)
    • API Server:接收用戶部署請求(如「運行 3 個 Web 容器」),并轉化為標準格式(Pod)。
    • Scheduler:根據節點資源(CPU、內存)和容器需求,決定把容器放在哪個節點上。
    • Controller Manager:監控容器狀態,比如發現容器掛了就通知重新部署。
  • 工作節點(Worker Node)
    • Kubelet:節點上的「管家」,接收控制平面的指令,通過 CRI 調用 Docker 運行容器。
    • Docker Engine:實際創建和運行容器,管理容器的生命周期。

?

2. CRI:K8s 與 Docker 溝通的「翻譯官」
  • 為什么需要 CRI?:K8s 設計時希望支持多種容器運行時(如 Docker、Containerd、CRI-O),所以定義了 CRI 接口,讓不同運行時按統一標準對接。
  • CRI 如何對接 Docker?
    • 早期 K8s 直接調用 Docker API,但后來為了解耦,引入了?containerd-shim?作為中間層:
      1. Kubelet 通過 CRI 發送請求(如「運行容器」)到 containerd-shim。
      2. containerd-shim 調用 Docker 的底層組件(containerd)創建容器。
      3. Docker 負責容器的運行,containerd-shim 負責將狀態返回給 Kubelet。
3. K8s 管理 Docker 的最小單位:Pod
  • Pod 是什么?:K8s 中容器的「打包單元」,一個 Pod 可以包含 1 個或多個容器(通常是緊密協作的容器,如 Web 服務 + 日志收集器)。
  • Pod 與 Docker 容器的關系
    • 每個 Pod 對應一組 Docker 容器,這些容器共享網絡和存儲資源(比如同一個 Pod 里的容器可以通過?localhost?互相訪問)。
    • K8s 部署時,先創建 Pod 對象,Kubelet 再通過 Docker 創建 Pod 里的所有容器。
四、舉個生活例子:K8s 如何像「快遞站」管理 Docker 容器?
  • 場景:你開了一家網店,需要處理大量訂單(容器)。
  • Docker = 快遞盒:把每個訂單的商品(應用)打包成獨立快遞盒(容器),保證商品不受損壞(環境隔離)。
  • K8s = 快遞站調度系統
    1. 接收訂單(API Server):用戶下單(部署請求),系統記錄需要多少個快遞盒(容器數量)。
    2. 分配快遞員(Scheduler):根據快遞員(節點)的工作量(資源),安排最合適的人去打包(運行容器)。
    3. 監控快遞狀態(Controller Manager):如果某個快遞員生病(節點故障),調度系統會把訂單轉給其他快遞員(容器遷移)。
    4. 快遞盒打包(Docker):快遞員接到任務后,用標準快遞盒(Docker)打包商品,確保每個包裹一致。
五、K8s 管理 Docker 的核心功能:不止于「運行」
  1. 服務發現與負載均衡
    • K8s 為一組容器(如 Web 服務)創建一個「服務(Service)」,自動分配域名和 IP,讓其他容器能找到它們,同時分攤流量(負載均衡)。
  2. 彈性伸縮
    • 當訪問量增加時,K8s 自動通知 Docker 創建更多容器;訪問量減少時,刪除多余容器,避免資源浪費。
  3. 滾動更新與回滾
    • 升級應用時,K8s 會先啟動新容器,再逐步替換舊容器,保證服務不中斷;如果升級失敗,能一鍵回滾到舊版本。
  4. 存儲管理
    • K8s 可以為容器分配共享存儲(如 NFS、云硬盤),即使容器在節點間遷移,數據也不會丟失。

containerd 和 dockerd 的關系:從 “母子” 到 “獨立協作”

1. 技術演進:dockerd 曾是 containerd 的 “包裝層”
  • containerd 的本質:它是一個底層容器運行時,負責管理容器的生命周期(創建、運行、停止)、鏡像管理、存儲和網絡接口等核心功能,相當于容器世界的 “基建工程師”。

  • dockerd 的角色:Docker 早期版本中,dockerd是用戶直接交互的命令行工具(比如docker run),但它內部依賴containerd來執行實際的容器操作。可以理解為:dockerd是給containerd穿了一層 “用戶友好的外套”,讓用戶不用關心底層復雜邏輯。

  • 關系類比
    containerd像手機的操作系統內核(如 Android 內核),dockerd像手機的操作界面(如 MIUI/EMUI),用戶通過界面(dockerd)操作,但真正干活的是內核(containerd)。

2. 如今:獨立組件的協作模式
  • Docker 架構升級:隨著容器技術發展,Docker 將containerd剝離為獨立項目(2017 年捐贈給 CNCF),現在dockerdcontainerd是兩個獨立運行的進程,但仍需協作:

    • dockerd負責接收用戶命令(如docker run),并將請求轉發給containerd
    • containerd負責執行容器操作,完成后將結果返回給dockerd,再由dockerd反饋給用戶。
  • 類比場景
    點外賣時,用戶通過 App(dockerd)下單,App 將訂單發給商家后廚(containerd),后廚做好飯菜后交給 App,再由 App 通知用戶取餐。

3. 為什么 K8s 更傾向于直接使用 containerd?
  • K8s 作為容器編排工具,更關注底層容器運行時的效率和穩定性,而containerddockerd更輕量、更標準化(符合 OCI 容器標準)。因此,K8s 從 1.24 版本開始推薦直接使用containerd作為容器運行時,跳過dockerd這一層,就像手機用戶繞過定制界面直接使用原生系統,減少性能損耗。

參考:

Docker 上 Kubernetes 的入門到進階指南:構建和管理你的容器化應用_kubernetes docker 先裝誰?-CSDN博客

深入理解K8s與Docker的關系:容器化技術的雙雄-CSDN博客

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

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

相關文章

QT MaintenanceTool 登錄無法找到 QtAccount 憑據

親測有效:QT6 Maintenance Tool 登錄問題_qt6 maintenancetool-CSDN博客 將ini這個配置文件移出文件夾后,在切換自己賬戶登錄即可

華為云Flexus+DeepSeek征文|利用華為云一鍵部署 Dify 平臺并接入 DeepSeek 大模型,構建長篇文章生成助手

目錄 前言 1 華為云一鍵部署 Dify 平臺 1.1 華為云 Dify 平臺介紹 1.2 部署過程介紹 1.3 登錄 Dify 平臺 2 接入華為云 ModelArts Studio 中的 DeepSeek 大模型 3 構建長篇文章生成助手 3.1 簡要介紹長篇文章生成助手 3.2 開始節點 3.3 生成標題和大綱(LL…

js的一些基礎概念總結

1.變量聲明 首先js變量聲明有三種,var,const,let,這三種變量聲明中我們第一優先使用const,需要改變這個值的時候我們用ley,var是盡量不去使用。 那么我們現在來總結一下三種聲明變量的區別。首先是var let …

防 XSS和CSRF 過濾器(Filter)

會話管理存在問題: 1.服務集群部署或者是分布式服務如何實現會話共享 2.會話的不同存儲地方的安全性問題 答: 會話共享 可以使用后端集中管理(redis)或者客戶端管理 (jwt); 存儲安全性 這個還真的沒有太好的方式&…

鴻蒙容器組件 WaterFlow、FlowItem解析:動態瀑布流布局實踐

一、引言:不規則布局的智能化解決方案 在圖片社交、電商導購、資訊聚合等現代應用場景中,瀑布流布局以其靈活的空間利用率和自然的視覺流動感成為界面設計的重要選擇。鴻蒙提供的 WaterFlow 與 FlowItem 組件,通過智能布局算法與聲明式語法&…

概率密度基本概念

概率密度(Probability Density)是概率論中用于描述隨機變量分布的一種方式,特別適用于連續隨機變量。它并不是一個概率值,而是表示單位范圍內的概率大小或“濃度”。更具體地說,概率密度表示在某個特定值附近&#xff…

10-1 MySQL 索引優化與查詢優化

10-1 MySQL 索引優化與查詢優化 文章目錄 10-1 MySQL 索引優化與查詢優化1. 數據準備2. 索引失效案例2.1 索引字段:全值匹配最優2.2 索引字段:最佳左前綴法則2.3 主鍵插入順序2.4 索引字段進行了:計算、函數、類型轉換(自動或手動)導致索引失…

基于目標驅動的分布式敏捷開發

研究結論 風險對項目目標的影響 時間目標:需求管理不當(如需求優先級不明確、多產品負責人需求沖突)、架構變更導致的返工、跨站點協調問題(如第三方依賴、通信基礎設施不足)是影響項目時間的主要風險因素。質量目標&…

高通手機跑AI系列之——穿衣試裝算法

環境準備 手機 測試手機型號:Redmi K60 Pro 處理器:第二代驍龍8移動--8gen2 運行內存:8.0GB ,LPDDR5X-8400,67.0 GB/s 攝像頭:前置16MP后置50MP8MP2MP AI算力:NPU 48Tops INT8 &&…

opencv入門(5)圖像像素的讀寫操作和算術運算

文章目錄 1 圖像遍歷與修改1.1 使用數組1.2 使用指針 2 圖像的算術運算2.1 一般算術操作2.2 算術API 1 圖像遍歷與修改 C中支持 數組遍歷 和 指針方式遍歷 1.1 使用數組 訪問使用 image.at(row,col) 進行訪問 如果是單通道灰度圖,就使用image.at進行讀取 如果是三…

Stable Diffusion入門-ControlNet 深入理解-第三課:結構類模型大揭秘——深度、分割與法線貼圖

大家好,歡迎回到Stable Diffusion入門-ControlNet 深入理解系列的第三課! 在上一課中,我們深入探討了 ControlNet 文件的命名規則,以及線條類 ControlNet模型的控制方法。如果你還沒有看過第二篇,趕緊點這里補課:Stable Diffusion入門-ControlNet 深入理解 第二課:Contr…

噴油嘴深凹槽內輪廓測量的方法探究 —— 激光頻率梳 3D 輪廓測量

引言 噴油嘴作為燃油噴射系統核心部件,其深凹槽內輪廓精度直接影響燃油霧化效果與發動機排放性能。噴油嘴深凹槽具有深徑比大(可達 30:1)、孔徑小(φ0.5 - 2mm)、表面質量要求高(Ra≤0.2μm)等…

上證ETF50期權交易規則一文詳解

50ETF期權,首先這是期權交易,所以50ETF期權有期權交易的所有特征,其次,50ETF期權的標的對象是上證50,所以50ETF(認購看漲)期權的走勢和上證50的走勢是一樣的。 行權時間: 在行權日當…

Oracle獲取執行計劃之10046 技術詳解

Oracle 的 10046 事件是性能調優中最常用的工具之一,通過跟蹤會話的 SQL 執行細節,生成包含執行計劃、等待事件、綁定變量等信息的跟蹤文件,幫助定位性能瓶頸。以下是技術詳解: 一、10046 事件基礎 10046 是 Oracle 內部事件&…

Linux 日志監控工具對比:從 syslog 到 ELK 實戰指南

更多云服務器知識,盡在hostol.com 你有沒有被 Linux 上滿屏飛滾的日志整崩潰過?看著 /var/log 目錄越來越肥,關鍵日志像大海撈針一樣藏在里面,每次出故障就像拆盲盒,賭你能不能第一眼看出問題。 日志系統&#xff0c…

本地服務器部署后外網怎么訪問不了?內網地址映射互聯網上無法連接問題的排查

我的網站部署搭建在本地服務器上的,在內網可以正常訪問,但是外網無法訪問,該怎么排查?局域網內部經過路由器的,有設置了虛擬服務器轉發規則,在互聯網公網上還是無法訪問服務器怎么辦?相信很多人…

如何免費正確安裝微軟的office全家桶

記錄一下如何正確安裝微軟的office全家桶 找到安裝包傻瓜式安裝 找到安裝包 安裝包在附件,大家可以自行進行下載 傻瓜式安裝 操作一目了然,點你需要的就行了

論文閱讀:BLIPv1 2022.2

文章目錄 一、研究背景與問題現有方法的局限性研究目標 二、核心方法與創新點多模態編碼器 - 解碼器混合架構(MED)標題生成與過濾(CapFilt)數據自舉方法 三、實驗與結果數據集與訓練配置關鍵實驗發現與 state-of-the-art 方法的對…

630,百度文心大模型4.5系列開源!真香

2025年被普遍認為是AI Agent商業化的關鍵之年,而大模型正是Agent能力的核心支撐。 當開發成本大幅降低,我們很可能看到各種垂直領域的Agent應用如雨后春筍般涌現。 技術普惠的現實意義對于廣大AI創業者和開發者來說,這無疑是個好消息。 之…

數據結構:遞歸:斐波那契數列(Fibonacci Sequence)

目錄 什么是斐波那契數列? 用遞歸推導Fibonacci 復雜度分析 用迭代推導Fibonacci 復雜度分析 遞歸優化:記憶化遞歸(Memoized Recursion) 復雜度分析 什么是斐波那契數列? 斐波那契數列(Fibonacci Seq…