理解 Kubernetes 的架構與控制平面組件運行機制

文章目錄

  • K8s架構
  • K8s核心組件
    • 控制平面組件(部署在 Master 節點)
      • 1. 查看組件運行情況
      • 2. 查看組件 help 命令
    • Node端組件(部署在每個工作節點)
  • K8s內部工作原理

Kubernetes(也稱為 K8s)是一個開源的容器編排和管理系統,用于自動部署、擴展和管理容器化應用程序。

K8s架構

Kubernetes 采用主從架構(Master-Worker),主要分為兩大部分:
1. 控制平面(Control Plane)—— 管理集群

用于全局決策(比如調度)、集群狀態管理等。

2. 工作節點(Worker Node)—— 執行容器化應用

運行實際的容器應用,并向控制平面匯報狀態。

3. 分布式特性

  1. 無中心節點(Master 節點可多副本 HA)
  2. 所有組件通過 API Server 交互
  3. 狀態存儲在 etcd 中(強一致性)

在這里插入圖片描述
在這里插入圖片描述

K8s核心組件

控制平面組件(部署在 Master 節點)

組件作用
kube-apiserver所有組件交互的入口,提供 REST API 接口,是集群的“中樞神經”
etcd分布式鍵值存儲,保存整個集群的狀態數據(如 Pod 信息、配置等)
kube-scheduler負責為新創建的 Pod 分配合適的 Node 節點
kube-controller-manager管理控制器(副本控制器、節點控制器等),維持系統期望狀態
cloud-controller-manager用于和云廠商平臺(如 AWS、GCP)集成,管理負載均衡、存儲等資源

1. 查看組件運行情況

在 Kubernetes 中,控制平面組件本身并不是通過 kubectl 的 help 命令直接查看的對象,因為它們不是 API 對象,而是后臺運行的服務程序。但你可以間接地通過以下方式獲取它們的信息或確認它們是否在運行。

kubectl get pods -n kube-system

在這里插入圖片描述

2. 查看組件 help 命令

Node端組件(部署在每個工作節點)

組件作用
kubelet負責與 API Server 通信,管理容器生命周期,監控容器運行狀態
kube-proxy實現服務的負載均衡和網絡代理,實現 Kubernetes 的 Service 網絡
容器運行時(如 containerd、CRI-O、Docker)運行容器的底層工具,遵循 Kubernetes 的 CRI 接口

K8s內部工作原理

下面用一個創建 Pod 的過程來理解內部工作流程:

創建一個 Pod 的流程:
1. 用戶操作:

用戶通過 kubectl 或其他方式向 kube-apiserver 提交創建 Pod 的請求。

2. API Server 接收請求:

驗證并將 Pod 對象寫入到 etcd 中(持久存儲)。

3. 調度器(kube-scheduler):

  1. 監聽未調度的 Pod;
  2. 根據策略(資源使用率、親和性等)選擇合適的 Node;
  3. 將調度結果寫入 etcd。

4. 控制器通知 Node:

kubelet 監聽到自己的 Node 上有新 Pod 需要創建,拉取鏡像并創建容器。

5. 容器運行:

使用容器運行時(如 containerd)啟動容器。

6. kubelet 上報狀態:

周期性向 API Server 匯報 Pod 運行狀態。

7. Service 和 kube-proxy:

若 Pod 關聯了 Service,kube-proxy 會更新 iptables 或 IPVS 規則,進行負載均衡。

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

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

相關文章

Express+MySQL后臺開發實戰:從模塊化到錯誤處理的全鏈路解析

ExpressMySQL后臺開發實戰:從模塊化到錯誤處理的全鏈路解析 摘要:本文將以Node.jsExpress框架為基礎,結合MySQL數據庫實戰,深度剖析后臺系統中數據庫模塊化設計、安全查詢、錯誤處理等核心開發要點。 一、項目環境與技術棧 ├─…

Spring AI 智能體代理模式(Agent Agentic Patterns)

AgentAgenticPatterns 簡介 在最近的一篇研究報告《構建高效代理》 中,Anthropic分享了關于構建高效大語言模型(LLM)代理的寶貴見解。這項研究特別有趣的地方在于,它強調簡單性和可組合性,而非復雜的框架。讓我們來探…

基于 Vue3 與 exceljs 實現自定義導出 Excel 模板

在開發中,我們需要常常為用戶提供更多的數據錄入方式,Excel 模板導出與導入是一個常見的功能點。本文將介紹如何使用 Vue3、exceljs 和 file-saver 實現一個自定義導出 Excel 模板,并在特定列添加下拉框選擇的數據驗證功能。 技術選型 excelj…

git 命令之-git cherry-pick

今天得到一個通知,這個業務版本里面部分已經開發但還沒測試的內容要新開一個分支提交,但是我已經有幾個提交上去了,難道只能一個一個文件復制到新的分支嗎?我不,我找到了這個git命令,可以解決我的困惑&…

浙大版《Python 程序設計》題目集6-3,6-4,6-5,6-6列表或元組的數字元素求和及其變式(遞歸解法)

目錄 6-3 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 6-4 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 6-5 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 6-6 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 6-3 第6章-3 列表或元組的數字元素求和 分數 20 全屏瀏覽 切換布局 作者 陳春暉 …

【b站計算機拓荒者】【2025】微信小程序開發教程 - chapter2 小程序核心

1 尺寸單位和樣式 1.1 創建小程序項目-純凈環境 // 該刪的刪掉。 1.2 尺寸單位 # 小程序內 手機屏幕大小可能不一樣,使用px像素就會出現樣式問題 --> 小程序統一了整個寬度,即750rpx,屏幕一半則是375rpx -->因此不管什么手機都可以…

攻防世界逆向刷題筆記(新手模式9-1?)

bad_python 看樣子是pyc文件損壞了。利用工具打開,發現是MAGIC壞了。搜下也沒有頭緒。 攻防世界-難度1- bad_python - _rainyday - 博客園 python Magic Number對照表以及pyc修復方法 - iPlayForSG - 博客園 看WP才知道36已經提示了pyc版本了。參考第二個文章&am…

mysql ACID 原理

序言:ACID 是一組數據庫設計原則,他是業務數據和關鍵業務程序的可靠性保障。 1、atomicity(原子性) 依賴如下能力 autocommit commit rollback2、一致性 2.1 double write buffer 1、定義:double write buffer 是…

WebStorm 高效快捷方式全解析

作為前端開發的黃金搭檔,WebStorm 憑借強大的功能和高度可定制的快捷鍵體系,成為眾多開發者提升編碼效率的利器。本文基于 IntelliJ IDEA 的快捷鍵體系(WebStorm 作為 JetBrains 家族成員,快捷鍵邏輯高度一致)&#xf…

基于 STM32 的農村污水處理控制系統設計與實現

摘要 針對農村污水處理自動化程度低、運維成本高的問題,本文設計了一種基于 STM32 單片機的污水處理控制系統。系統通過多傳感器實時監測水質參數,結合 PID 控制算法實現污水處理全流程自動化,并集成遠程監控功能,滿足農村地區低成本、易維護的需求。 一、硬件系統設計 …

自動生成md文件以及config.mjs文件-vitepress

效果: config.mjs文件 import {defineConfig} from vitepress import hljs from highlight.js/lib/core import javascript from highlight.js/lib/languages/javascript import xml from highlight.js/lib/languages/xml import {ref} from "./cache/deps/vue…

Tailwind css實戰,基于Kooboo構建AI對話框頁面(二)

基于上篇內容,添加交互邏輯,實現一個偽聊天功能的對話框效果: Tailwind css實戰,基于Kooboo構建AI對話框頁面(一)-CSDN博客 在前期文章中,我們完成了 AI 對話框的靜態頁面搭建。本文將聚焦交互…

Conda:環境移植及更新1--使用conda-pack

更多內容:XiaoJ的知識星球 目錄 一、使用conda-pack1.安裝 conda-pack2.移植整個 Anaconda 環境3.移植單個虛擬環境4.驗證是否生效 在相同Linux設備上移植Miniconda3(Anaconda3同理)常用方法有。 使用conda-pack:使用conda-pack工…

樹莓派超全系列教程文檔--(50)如何查找樹莓派的IP地址

如何查找樹莓派的IP地址 找到您的Raspberry Pi的IP地址桌面命令行引導輸出網絡管理器使用mDNS解析 raspberrypi.local檢查路由器的設備列表使用 nmap 查找設備使用智能手機應用程序查找設備 文章來源: http://raspberry.dns8844.cn/documentation 原文網址 找到您…

如何優化 MySQL 存儲過程的性能?

文章目錄 1. 優化 SQL 語句避免全表掃描減少子查詢,改用 JOIN避免 SELECT 2. 合理使用索引3. 優化存儲過程結構減少循環和臨時變量避免重復計算 4. 使用臨時表和緩存5. 優化事務處理6. 分析和監控性能7. 優化數據庫配置8. 避免用戶自定義函數(UDF&#…

尚硅谷redis7 47-48 redis事務之理論簡介

47 redis事務之理論簡介 什么是事務 可以一次執行多個命令,本質是一組命令的集合。一個事務中的所有命令都會序列化,按順序地串行化執行而不會被其它命令插入 能干什么? 一個隊列中,一次性、順序性、排他性的執行一系列操作 redis事務vs數據庫事務 …

Nginx 在四大核心場景中的應用實踐與優化

一、Nginx 核心應用場景深度解析 1. HTTP 服務器:靜態資源的高性能承載者 Nginx 作為 HTTP 服務器時,憑借輕量級架構和高效的事件驅動模型,成為靜態資源服務的首選方案。 核心能力與場景 靜態文件高效處理:直接響應 HTML、CSS…

亞當·斯密思想精髓的數學建模與形式化表征

亞當斯密思想精髓的數學建模與形式化表征 摘要:本文運用數學建模方法對亞當斯密的經濟與倫理思想進行形式化表征。通過分工的規模經濟模型和市場均衡條件展現《國富論》中"看不見的手"原理;采用擴展效用函數與合作博弈均衡解釋《道德情操論》…

FastDFS集群部署與性能優化實戰

目錄 一、介紹 二、FastDFS原理 三、FastDFS部署 1.資源清單 2.修改主機名 3.安裝libfastcommon(tracker01、tracker02、storage1、storage2) 4.安裝編譯FastDFS(tracker01、tracker02、storage1、storage2) 5.配置tracker…

學習心得(14--16)

模板: 前端的頁面單獨存在模板當中 jinja2 :模板語法 保持前端頁面不變的情況下,返回內容給前端做法: 寫一個data,并在return中的render_template中,寫上datadata 使用時,要將templa…