k8s基礎架構介紹

k8s基礎架構介紹

k8s 是對容器進行編排的一種工具。通過k8s可以實現對容器的編排、部署、更新等

學習k8s之前,先了解相關的一些使用和配置k8s的一些工具。

k8s的常用工具

在 kubernetes 中,主要有三個日常使用的工具,這些工具使用 kube 前綴命名,這三個工具如下:

kubeadm

用來初始化集群的指令,能夠創建集群,并且添加新的節點。可用其它部署工具替代。

具體功能有:

  1. 初始化集群:在控制平面節點(Master 節點)上運行 kubeadm init,自動生成集群所需的證書、配置文件和核心組件(如 API Server、Controller Manager、Scheduler 等)。

  2. ?加入節點:生成 kubeadm join 命令,將工作節點(Worker 節點)添加到集群。

  3. 升級集群:支持 Kubernetes 版本的升級(如 kubeadm upgrade)。

  4. 重置集群:通過 kubeadm reset 清理集群狀態。

kubelet:

?運行在每個節點(Master 和 Worker)上的代理,直接與容器運行時(如 Docker、containerd)交互,負責與API-server通信,管理節點上的 Pod 和容器生命周期。具體功能包括

  1. ?啟動/停止容器:根據 Kubernetes API Server 的指令,創建或終止 Pod 中的容器。

  2. 監控容器的運行狀態,并向 API Server 報告節點和 Pod 的健康狀態。

  3. 掛載存儲卷:按需掛載 Pod 所需的存儲卷(如 Persistent Volume)。

  4. ?執行探針:運行 livenessProbereadinessProbe 檢查容器狀態。

kubectl

kubectl:用k8s中的命令行工具,與 kubernetes API-Server 通訊,是我們操作集群的客戶端。具體功能有

  1. 創建、刪除、更新、查看集群中的資源(如 kubectl create, kubectl delete

  2. ?調試集群:查看 Pod 日志(kubectl logs)、進入容器終端(kubectl exec)、檢查資源狀態(kubectl describe)。

  3. 通過 YAML 文件聲明式管理資源(如 kubectl apply -f deployment.yaml)。

那么我們操縱集群中的節點是怎么辦到的呢,其實就是用戶通過 kubectl 向 API Server 發送指令,API Server 再將指令傳遞給 kubelet 執行。

講完常用的工具,接下來,我們就可以一起看一下k8s的架構了。

k8s 架構

一個 kubernetes 集群是由一組被稱為節點的機器或虛擬機組成,節點有 master、worker 兩種類型。一個集群中至少有一個 master 節點,在沒有 worker 節點的情況下, Pod 也可以部署到 master 節點上。如果集群中的節點數量非常多,則可考慮擴展 master 節點,使用多個 master 節點控制集群。

k8s中的master節點組成了控制平面,worker節點組成了數據平面。

控制平面

控制平面由master節點組成。一個maser節點中通常由5個組件,包括

  1. ?kube-apiserver:集群的“入口”,提供 REST API,接收用戶請求(如 kubectl 命令)。

  2. etcd:分布式鍵值存儲數據庫,保存集群的所有配置和狀態數據。

  3. kube-scheduler:調度 Pod 到合適的節點上運行。

  4. kube-controller-manager:運行各種控制器(如 Deployment、Node 控制器),確保集群處于期望狀態。

  5. ?cloud-controller-manager?(可選):與云平臺(如 AWS、GCP)交互,實現云原生功能。

數據平面

數據平面是 Kubernetes 集群中實際承載工作負載的核心層,由一組 ?工作節點(Worker Node)? 構成,負責運行用戶應用(Pod)并處理計算、存儲、網絡等實際任務。

每個worker節點中,都必須有:

kubelet:節點代理,管理本節點上 Pod 的生命周期(創建、終止、重啟容器)、監控容器狀態(如 CPU/內存使用率),并向控制平面報告節點和 Pod 的健康狀態、掛載存儲卷(Volume)、執行容器探針(Liveness/Readiness Probe)等。

kube-proxy:節點網絡代理,維護 Kubernetes 服務的網絡規則,確保 Pod 跨節點通信時,流量能正確轉發到目標端點(Endpoint)、實現 Service 的負載均衡和網絡流量路由(通過 iptables 或 IPVS 規則)。

k8s部署一個pod的完整流程

當用戶通過 kubectl createkubectl apply 提交資源聲明(如 Deployment、Pod)時,集群會按以下步驟協調資源:

  1. 用戶提交指令

    kubectl 將 YAML 文件內容轉換為 API 請求,發送至 ?API Server。

  2. ?API Server 處理請求

    API Server 對請求進行身份認證(Authentication)、權限校驗(Authorization)并將資源定義(如 Pod 規格)持久化到 ?etcd 數據庫。

  3. ?調度決策(Scheduler)

    調度器監聽 API Server 的未調度 Pod 事件,執行以下邏輯:
    過濾滿足 Pod 資源需求的節點(如 CPU/內存/GPU)。
    根據策略(親和性、污點容忍、拓撲分布等)為 Pod 選擇最優節點。

  4. 節點執行(kubelet)

    目標節點的 ?kubelet 檢測到新 Pod 調度到本節點后:

    • 從鏡像倉庫拉取容器鏡像(若本地不存在)。
    • 調用容器運行時創建容器,掛載存儲卷。
    • 啟動容器并執行探針檢查。
    • 持續監控容器狀態,并上報至 API Server。
  5. ?狀態反饋與協調(Controller Manager)?

    ?控制器(如 Deployment Controller)? 持續監聽 Pod 狀態,若Pod 異常終止,觸發重啟或重建(根據重啟策略),若期望副本數與實際不符,觸發擴縮容操作。

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

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

相關文章

興達易控Profinet 轉 ModbusTCP跨網段通信模塊

Profinet 轉 ModbusTCP/跨網段通信模塊 Profinet轉ModbusTCP/跨網段通信模塊,作為現代工業自動化系統中不可或缺的重要組件,正日益受到廣泛關注和應用。 這種模塊的核心功能是將Profinet網絡協議轉換為Modbus TCP協議,實現不同網絡之間的無縫…

創新技術引領軟件供應鏈安全,助力數字中國建設

編者按 隨著數字化轉型的加速,針對軟件供應鏈的攻擊事件呈快速增長態勢,目前已成為網絡空間安全的焦點。如何將安全嵌入到軟件開發到運營的全流程,實現防護技術的自動化、一體化、智能化,成為技術領域追逐的熱點。 懸鏡安全作為…

某大廠自動化工程師面試題

一些大廠的自動化工程師面試題匯總: 基礎知識類 請解釋什么是PLC(可編程邏輯控制器)?什么是PID控制?它在自動化系統中的作用是什么?請描述一下工業4.0的基本概念。編程與控制系統類 你熟悉哪些PLC編程語言?請舉例說明。如何在SCADA系統中實現數據采集和監控?請解釋一下…

Java 大視界 -- 基于 Java 的大數據分布式數據庫架構設計與實踐(125)

💖親愛的朋友們,熱烈歡迎來到 青云交的博客!能與諸位在此相逢,我倍感榮幸。在這飛速更迭的時代,我們都渴望一方心靈凈土,而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識,也…

cursor中使用prettier-code formatter插件方法

cursor的"擴展"中搜索"prettier-code formatter",然后安裝 點擊cursor編輯器右上角“更多操作”,然后打開“配置編輯器” 按照圖片進行操作,進入到editor在editor中,找“格式化“,把Format On Sav…

OSPF-2 鄰接建立關系

上一期我們說了OSPF的鄰居建立關系以及OSPF鄰居關系建立中建立失敗的因素以及相關實驗案例 這一期我們來說說OSPF的鄰接關系建立時需要交互哪些報文以及失敗因素及原因和相關實驗案例 一、概述 在運行了OSPF的網絡當中為了交互鏈路狀態信息和路由信息,互相之間需要建立鄰接關…

問deepseek: 如何處理CGNS網格文件里,多個zone之間的鏈接數據

在CGNS文件中,多個zone之間的鏈接數據通常通過ZoneGridConnectivity節點處理。以下是處理步驟: 1. 確定鏈接類型 首先,明確zone之間的鏈接類型,常見的有: 1-to-1連接:兩個zone的邊界點一一對應。** Over…

什么是SEO泛目(什么是SEO站群)

SEO泛目錄與站群策略:提升網站優化的雙劍合璧 在當今競爭激烈的互聯網環境中,SEO優化已成為企業提升網站流量和品牌曝光的重要手段。而在眾多SEO策略中,泛目錄和站群因其獨特的技術優勢和效果,逐漸成為SEO從業者的熱門選擇。本文…

conda、pip、npm、yarn換國內源

conda源 # conda源 conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes# 換回conda的默認源 conda config --remove-key channels pip源 # pip源# 永久換源 pip config set global.index-url https://…

Jetson Orin NX jupyter lab的安裝和使用

主要是為了梳理一下整個過程,其實步驟很簡單,但容易出錯。 注意,實際只有兩個文件需要寫入,一個是jupyter_lab_config.py,一個是jupyter.service。 配置文件的名字要寫對,如果總是copy網上的代碼&#xff0…

【清華大學第七版】DeepSeek賦能家庭教育的實操案例(批改作文+輔助語文/數學/科學學習+制定學習計劃)

我用夸克網盤分享了「DeepSeek完整資料合集」,點擊鏈接即可保存。打開「夸克APP」,無需下載在線播放視頻,暢享原畫5倍速,支持電視投屏。 鏈接:https://pan.quark.cn/s/621259e4af15 近日,清華大學發布了《…

hive 中的各種參數,一般在哪里修改

在實際工作中,Hive 參數的配置和修改可以通過多種方式進行,具體取決于使用場景和需求。以下是常見的參數配置方式和適用場景: 1. 在 Hive CLI 或 Beeline 中臨時設置 適用場景: 臨時修改參數,僅對當前會話生效。 使用方法: 在 Hi…

Opencv之掩碼實現圖片摳圖

掩碼實現圖片摳圖 目錄 掩碼實現圖片摳圖1 掩碼1.1 概念1.2 創建掩碼1.3摳圖思路 2 代碼測試 1 掩碼 1.1 概念 掩碼(Mask)是一種用于指定圖像處理操作區域的工具。掩碼通常是一個與圖像尺寸相同的二值圖像,其中像素值為0表示不處理&#xff…

QT編程之JSON處理

一、核心類庫及功能 Qt 提供了一套完整的 JSON 處理類庫(位于 QtCore 模塊),支持解析和生成 JSON 數據: ?QJsonDocument?:表示完整的 JSON 文檔,支持從 QJsonObject 或 QJsonArray 初始化?。?QJsonOb…

在虛擬環境里面配置Linux系統

Linux系統有很多版本,常用的有Ubantu烏班圖,和CentOS 不同的版本在使用的時候,有部分執行方式的不同 安裝的流程都一樣 首先,想要安裝Ubantu,要去它的官網,找下載連接,然后下載iso后綴的安裝…

CentOS7下安裝MongoDB

步驟 1:創建 MongoDB Yum 倉庫文件 你需要創建一個 MongoDB 的 Yum 倉庫配置文件,以便從官方源下載 MongoDB。打開終端并使用以下命令創建并編輯該文件: sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo 在打開的文件中,輸入以下…

機器視覺工程師如何學習C#通訊

建議大家可以提前測試,真實模擬現場的情況,或者采用虛擬串口,虛擬網口頻繁測試通訊的穩定性,以后有現場需要,可以快速布局到現場。 機器視覺工程師學習C#通訊協議需要結合工業場景需求,掌握基礎協議原理、常…

40.動態規劃13

回文子串 class Solution { public:int countSubstrings(string s) {int ns.size();vector<vector<int>> dp(n,vector<int>(n,0));int res0;for(int i0;i<n;i){for(int ji;j>0;j--){if(ij){dp[i][j]1;res;}else{if(s[i]s[j]){if(abs(i-j)<2){dp[i]…

基于ssm的一家運動鞋店的產品推廣網站的設計

項目簡介 一家運動鞋店實現了以下功能&#xff1a; 實現了用戶在線選擇試題并完成答題&#xff0c;在線查看考核分數。管理員管理收貨地址管理、購物車管理、字典管理、留言版管理、新聞信息管理、產品管理、產品收藏管理、產品評價管理、產品訂單管理、單頁數據管理、用戶管…

3.14學習總結

今天完成了幾道關于二叉樹的算法題 關于二叉樹的最小最大深度和數據流中的第k大元素&#xff0c;用到優先隊列&#xff0c;學習了有關java的基礎知識&#xff0c;學習了雙指針法。