kubernetes 入門篇之架構介紹

經過前段時間的學習和實踐,對k8s的架構有了一個大致的理解

1. k8s 分層架構

在這里插入圖片描述

架構層級核心組件
控制平面層etcd、API Server、Scheduler、Controller Manager
工作節點層Kubelet、Kube-proxy、CRI(容器運行時接口)、CNI(網絡插件)、CSI(存儲插件)
資源對象層Pod、Deployment、StatefulSet、HPA、VPA
擴展插件層CoreDNS、Ingress Controller、KEDA(事件驅動自動擴縮)、Argo Rollouts

2. 組件

2.1. kube-apiserver

作用:Kubernetes 集群的核心入口,提供 RESTful API 服務。

功能:
接收所有來自客戶端(如 kubectl)或集群內部組件的請求。

驗證和校驗請求的合法性(如權限、資源配額等)。

作為唯一直接與 etcd 交互的組件,負責集群狀態的讀寫。

充當其他組件之間通信的樞紐(如 kube-scheduler、kube-controller-manager 等)。

2.2. kube-controller-manager

作用:運行一系列控制器(Controller),確保集群的實際狀態與期望狀態一致。

核心控制器:

Node Controller:監控節點狀態(如節點宕機時觸發處理)。

Replication Controller:確保 Pod 副本數符合預期(如 Deployment 的副本數)。

Endpoint Controller:維護 ServicePod 的映射關系(Endpoints)。

Service Account & Token Controller:管理服務賬戶和訪問令牌。

2.3. kube-scheduler

作用:負責將新創建的 Pod 調度到合適的節點上運行。

調度流程:

過濾:排除不滿足 Pod 需求的節點(如資源不足、標簽不匹配)。

打分:對剩余節點按優先級排序(如資源利用率、親和性等)。

綁定:將 Pod 綁定到最優節點,由對應節點的 kubelet 執行創建。

可擴展性:支持自定義調度策略。

2.4. kubelet

作用:運行在每個節點上的“節點代理”,負責管理本節點上的 Pod 生命周期。

功能:

監聽 API Server 或本地 Pod 清單(如靜態 Pod),確保 Pod 按預期運行。

執行 Pod 的創建、啟動、停止、監控等操作。

定期向 API Server 匯報節點狀態(如資源使用情況、Pod 狀態)。

與容器運行時(如 Docker、containerd、CRI-O)交互,管理容器。

2.5. kube-proxy

作用:實現 Kubernetes Service 的網絡代理和負載均衡。

功能:

維護節點上的網絡規則(如 iptables/IPVS),將訪問 Service 的請求轉發到后端 Pod

實現 ServiceClusterIP、NodePort、LoadBalancer 等類型的網絡暴露。

確保 Pod 之間的網絡通信和負載均衡。

2.6. etcd

作用:Kubernetes 集群的分布式鍵值存儲數據庫,保存所有集群狀態和數據。

功能:

存儲集群的配置信息、節點信息、Pod 狀態、Secrets、ConfigMaps 等。

提供高可用和強一致性的數據存儲(基于 Raft 共識算法)。

僅通過 kube-apiserver 進行讀寫,其他組件不直接操作。

3. CRI

kubernetesv1.5 版本開始引入了CRI規范,通過插件接口模式,kubernetes無須重新編譯就可以使用多種不同類型的容器運行時。kubernetesv1.23 及之前的版本可以將 docker 作為容器運行時,從v1.24 版本開始不再支持 docker 作為容器運行時,采用containerd 、CRI-O作為容器運行時。

kubelet 基于gRPC框架通過UNIX Socket 與容器運行時通信。在該過程中,kubelet 作為客戶端,CRI 是服務端。
在這里插入圖片描述
CRI 主要包括兩個gRPC服務:ImageServiceRuntimeService,實現對容器鏡像和容器實例的管理功能。

  • ImageService:負責容器鏡像的拉取,查看和移除鏡像等。
  • RuntimeService: 負責pod 和容器的生命周期管理,以及與容器的交互(如 exec、attac、 port-forward等)。

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

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

相關文章

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法 常見原因 server-id 沖突:當多個 Flink CDC 任務連接同一個 MySQL 實例,且使用了相同的 server-id 時,會導致該沖突。因為 MySQL 服務器通過 server-id 來區分不同的從服務器,如果多個 Flink CDC 任務使用相…

從PPT到PNG:Python實現的高效PPT轉圖工具

從PPT到PNG:Python實現的高效PPT轉圖工具 在日常工作中,PPT(PowerPoint)文件是我們常用的演示工具。然而,有時候我們需要將PPT的內容提取為圖片格式(如PNG)以便于展示或保存。手動將每一頁PPT保…

【開發語言】懸空指針問題

懸空指針(Dangling Pointer)是編程中常見的內存管理問題,尤其在C/C這類手動管理內存的語言中。以下是詳細解釋: 什么是懸空指針? 懸空指針是指向已經被釋放(或失效)內存的指針。這段內存可能已…

【持續更新中】常用docker服務部署指北

前言 docker是個好東西,小樹莓派上也能快速部署,方便管理環境。用這篇筆記來記錄下各種軟件的快速部署方式 準備環境 docker安裝 curl -fsSL https://get.docker.com -o get-docker.sh sh ./get-docker.shdocker鏡像源配置 一種方法是設置proxy&…

Godot學習-創建簡單動畫

文章目錄 1、準備工作Godot資源 2、創建項目3、創建結點4、創建動畫1、創建動畫2、添加軌道3、創建關鍵幀3.1 第一個關鍵幀3.2 第二個關鍵幀 5、加載后自動播放6、動畫循環7、軌道設置1、軌道更新模式2、軌跡插值3、其他屬性的關鍵幀4、編輯關鍵幀5、使用 RESET 軌道6、洋蔥皮 …

Python 爬蟲解決 GBK亂碼問題

文章目錄 前言爬取初嘗試與亂碼問題編碼知識科普UTF - 8GBKUnicode Python中的編碼轉換其他編碼補充知識GBKGB18030GB2312UTF(UCS Transfer Format)Unicode 總結 前言 在Python爬蟲的過程中,我嘗試爬取一本小說,遇到GBK亂碼問題&a…

B站搜索關鍵詞機制深度解析:算法邏輯與優化策略

在擁有超過5億用戶的B站生態系統中,每天都有海量的視頻內容被上傳和消費。對于創作者而言,如何讓自己的視頻在茫茫內容海洋中被目標受眾發現,是至關重要的課題。而關鍵詞,正是連接內容與用戶的關鍵橋梁。理解B站的搜索關鍵詞機制&…

寶塔面板中解鎖Laravel日志查看的奧秘

目錄 一、前言二、Laravel 日志基礎認知2.1 日志的作用2.2 Laravel 日志的默認配置 三、查找 Laravel 日志文件位置3.1 常規存儲路徑3.2 自定義路徑查找 四、查看 Laravel 日志內容4.1 寶塔面板文件管理器查看4.2 使用命令行查看 五、常見問題及解決方法5.1 權限不足無法查看5.…

Matlab Add Legend To Graph-圖例添加到圖

Add Legeng To Graph: Matlab的legend()函數-圖例添加到圖 將圖例添加到圖 ,圖例是標記繪制在圖上的數據序列的有用方法。 下列示例說明如何創建圖例并進行一些常見修改,例如更改位置、設置字體大小以及添加標題。您還可以創建具有多列的圖…

K8S+Prometheus+Consul+alertWebhook實現全鏈路服務自動發現與監控、告警配置實戰

系列文章目錄 k8s服務注冊到consul prometheus監控標簽 文章目錄 系列文章目錄前言一、環境二、Prometheus部署1.下載2.部署3.驗證 三、kube-prometheus添加自定義監控項1.準備yaml文件2.創建新的secret并應用到prometheus3.將yaml文件應用到集群4.重啟prometheus-k8s pod5.訪…

基于YOLO11的車牌識別分析系統

【包含內容】 【一】項目提供完整源代碼及詳細注釋 【二】系統設計思路與實現說明 【三】系統數據統計與可視化分析支持 【技術棧】 ①:系統環境:Windows/macOS/Linux ②:開發環境:Python 3.8 ③:技術棧&#x…

每天記錄一道Java面試題---day39

GC如何判斷對象可以被回收了 回答重點 引用計數法: - 每個對象由一個引用計數屬性,新增一個引用時計數器加1,引用釋放時計數減1,計數為0時可以回收。可達性分析法: - 從GC Roots開始向下搜索,搜索所走過的…

機器學習(5)——支持向量機

1. 支持向量機(SVM)是什么? 支持向量機(SVM,Support Vector Machine)是一種監督學習算法,廣泛應用于分類和回歸問題,尤其適用于高維數據的分類。其核心思想是尋找最優分類超平面&am…

從零到一:網站設計新手如何快速上手?

從零到一:網站設計新手如何快速上手? 在當今數字化時代,網站已成為企業、個人展示信息、提供服務的重要窗口。對于想要涉足網站設計領域的新手而言,如何快速上手并掌握必要的技能成為首要任務。本文將從基礎知識、軟件工具、設計…

藍橋杯2024國B數星星

小明正在一棵樹上數星星,這棵樹有 n 個結點 1,2,?,n。他定義樹上的一個子圖 G 是一顆星星,當且僅當 G 同時滿足: G 是一棵樹。G 中存在某個結點,其度數為 ∣VG?∣?1。其中 ∣VG?∣ 表示這個子圖含有的結點數。 兩顆星星不相…

Django從零搭建賣家中心登陸與注冊實戰

在電商系統開發中,賣家中心是一個重要的組成部分,而用戶注冊與登陸則是賣家中心的第一步。本文將詳細介紹如何使用Django框架從零開始搭建一個功能完善的賣家注冊頁面,包括前端界面設計和后端邏輯實現。 一、項目概述 我們將創建一個名為sel…

Opencv使用cuda實現圖像處理

main.py import os import cv2 print(fOpenCV: {cv2.__version__} for python installed and working) image cv2.imread(bus.jpg) if image is None:print("無法加載圖像1") print(cv2.cuda.getCudaEnabledDeviceCount()) cv2.cuda.setDevice(0) cv2.cuda.printCu…

如何編制實施項目管理章程

本文檔概述了一個項目管理系統的實施計劃,旨在通過統一的業務規范和技術架構,加強集團公司的業務管控,并規范業務管理。系統建設將遵循集團統一模板,確保各單位項目系統建設的標準化和一致性。 實施范圍涵蓋投資管理、立項管理、設計管理、進度管理等多個方面,支持項目全生…

B端可視化方案,如何助力企業精準決策,搶占市場先機

在當今競爭激烈的商業環境中,企業需要快速、準確地做出決策以搶占市場先機。B端可視化方案通過將復雜的企業數據轉化為直觀的圖表和儀表盤,幫助企業管理層和業務人員快速理解數據背后的業務邏輯,從而做出精準決策。本文將深入探討B端可視化方…

基于FPGA的一維時間序列idct變換verilog實現,包含testbench和matlab輔助驗證程序

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 DCT離散余弦變換 4.2 IDCT逆離散余弦變換 4.3 樹結構實現1024點IDCT的原理 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) matlab仿真結果 FPGA仿真結果 由于FP…