k8s 自身原理 4

前面咱們分享了 mater 和 worker 節點里面都有哪些組件,他們又是各自主要負責的工作是什么,現在我們心里應該都有數了吧

master 節點

etcd 存儲資源配置,ApiServer 提供 RESTful Api 用于交互,scheduler 用于調度 pod,controller manager 控制器管理器

worker 節點

kubelet 管理 節點上的所有組件和內容,kube-proxy,作為代理將數據給到 pod

從控制器到 pod 運行,是如何達成的?

那么今天來分享一下,這些組件都是如何高效配合協同作戰的,我們可以從控制器作為切入點,來看看

前面我們說到 master 里面的組件是不會直接去創建和運行 pod 的,只會和 ApiServer 通信,那么我們來看看創建一個 控制器的資源,到最終 pod 運行,中間都會涉及哪些控制器,哪些資源,哪些動作

我們都知道,咱們在生產環境下面,是不會直接去創建 pod 資源的,而是通過 RC / RS 去管控 pod ,然后我們是否還記得 Deployment 資源是會去管控 RS 的,那么我們就用之前環境中一直有的 deploy 來演示一下效果吧

看一下環境中的 deploy

可以看到環境中是有 5 個 pod,我們進入 newkubia ,將副本數修改為 3 個,并且在另外一個窗口進入到 master 節點,開啟事件監控 kubectl get events --watch

在將 newkubia Deployment 從 5 個副本修改到 3 個副本的時候,我們可以看到此處的事件監控能夠看到監控的信息

[xmt@VM-20-15-centos ~]$ kubectl get events --watch
LAST SEEN   TYPE     REASON              OBJECT                MESSAGE
0s          Normal   ScalingReplicaSet   deployment/newkubia   Scaled down replica set newkubia-85df599b7f to 3
0s          Normal   Killing             pod/newkubia-85df599b7f-zhwnw   Stopping container newkubia
0s          Normal   Killing             pod/newkubia-85df599b7f-jzjsn   Stopping container newkubia
0s          Normal   SuccessfulDelete    replicaset/newkubia-85df599b7f   Deleted pod: newkubia-85df599b7f-zhwnw
0s          Normal   SuccessfulDelete    replicaset/newkubia-85df599b7f   Deleted pod: newkubia-85df599b7f-jzjsn

咱可以在 REASON 字段處看到,經歷的過程是 **ScalingReplicaSet -> Killing newkubia-85df599b7f-zhwnw -> Killing newkubia-85df599b7f-jzjsn -> SuccessfulDelete **

上述過程中,就會涉及到這些 控制器:

  • Deployment 控制器
  • ReplicaSet 控制器

還涉及 調度器,ApiServer 和 kubelet 和 docker

首先是各種控制器會監聽 ApiIServer 里面對應的資源,當我們修改 newkubia Deployment 清單的副本數時候,

  • kubectl 會發 http 請求 POST 方法去請求 ApiServer,ApiServer 修改對應的 etcd 數據
  • Deployment 控制器監控到 Deployment 資源有變動,則會去和 APiServer 交互修改 ReplicaSet 資源的副本數
  • ReplicaSet 此時監聽到 ApiServer 處的 ReplicaSet 資源有變動,則會 與 ApiServer 進行交互 去通知 相應的 pod 資源 進行需要進行更新
  • 調度器 scheduler 同樣也是監聽到 ApiServer 中的 pod 資源有變動后,Scheduler 就會去和 ApiServer 交互 在相應節點上配置增刪 pod
  • 對應節點的 kubelet 監聽到 ApiServer 中 pod 資源的變化,便會去通知自己節點的 docker,進行增加運行容器和刪除容器的動作

通過上述簡圖和描述,相應到這里,xdm 對于修改一個 deployment 資源的副本數, k8s 中從控制器 到 實際的 pod 會涉及哪些組件了吧!

今天就到這里,學習所得,若有偏差,還請斧正

歡迎點贊,關注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力

好了,本次就到這里

技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。

我是阿兵云原生,歡迎點贊關注收藏,下次見~
更多的可以查看 零聲每晚八點直播:https://ke.qq.com/course/417774

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

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

相關文章

VS2019 + Qt : setToolTip的提示內容出現亂碼

VS2019 Qt : setToolTip的提示內容出現亂碼 在使用setToolTip()時, setToolTip(QString("asd你好!");標簽提示只有英文是對的,中文是亂碼! 應該是編碼出了問題。默認情況下,Qt使用的是UTF-8編碼&#xf…

踩坑經驗:JavaScript 中的 for...of 和 for...in 循環

在 JavaScript 編程中,for...of 和 for...in 是常用的循環語法,但它們在使用時可能會引發一些意想不到的問題。本文將分享我在使用這兩種循環時所遇到的坑和經驗。 兩者的區別: 適用對象類型: for…of:主要用于遍歷可…

數據結構-帶頭雙向循環鏈表的實現

前言 帶頭雙向循環鏈表是一種重要的數據結構,它的結構是很完美的,它彌補了單鏈表的許多不足,讓我們一起來了解一下它是如何實現的吧! 1.節點的結構 它的節點中存儲著數據和兩個指針,一個指針_prev用來記錄前一個節點…

Git詳解及使用

Git簡介 Git 是一種分布式版本控制系統,它可以不受網絡連接的限制,加上其它眾多優點,目前已經成為程序開發人員做項目版本管理時的首選,非開發人員也可以用 Git 來做自己的文檔版本管理工具。 大概是大二的時候開始接觸和使用Gi…

云計算——ACA學習 云計算核心技術

作者簡介:一名云計算網絡運維人員、每天分享網絡與運維的技術與干貨。 座右銘:低頭趕路,敬事如儀 個人主頁:網絡豆的主頁????? 寫在前面 本系列將會持續更新云計算阿里云ACA的學習,了解云計算及網絡安全相關…

DeepSpeed加速大模型訓練

DeepSpeed是微軟推出的一個框架,可以對Pytorch的模型進行包裝,提供了加快模型的訓練速度,降低對GPU顯存的占用,以及方便進行分布式訓練等等高級特性。在這里我也對DeepSpeed進行了測試,看看是否能提高我的transformer模…

Maven 插件 maven-antrun-plugin 執行 ant 腳本

Ant 相信大家都不陌生,你可以把它理解為使用 xml 格式描述的一系列命令處理工具。它是一種基于Java的build工具。理論上來說,它有些類似于(Unix)C中的make、有些類似于基于shell命令編寫的sh腳本文件。Ant 用 Java 的類來擴展。&a…

多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測

多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測 目錄 多維時序 | MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測基本介紹模型特點程序設計參考資料 基本介紹 本次運行測試環境MATLAB2021b,MATLAB實現PSO-CNN-BiLSTM多變量時間序列預測。代碼說明&#xff1a…

Java mail郵件開發 OA辦公系統

目錄 1 Java mail郵件開發 OA辦公系統 1.1 //用戶登錄 1.2 //用戶注冊 1.3 //根據郵箱賬號查詢用戶ID Java mail郵件開發 OA辦公系統package com.email.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement;<

POSTGRESQL 關于2023-08-14 數據庫自動啟動文章中使用KILL 來進行配置RELOAD的問題解釋...

開頭還是介紹一下群&#xff0c;如果感興趣Polardb ,mongodb ,MySQL ,Postgresql ,redis &#xff0c;SQL SERVER ,ORACLE,Oceanbase 等有問題&#xff0c;有需求都可以加群群內有各大數據庫行業大咖&#xff0c;CTO&#xff0c;可以解決你的問題。加群請加 liuaustin3微信號 &…

Oracle執行計劃

Oracle執行計劃 1. 什么是執行計劃Oracle explain使用3. Explain執行順序 1. 什么是執行計劃 執行計劃是一條查詢語句在Oracle中的執行過程或訪問路徑的描述。 執行計劃描述了SQL引擎為執行SQL語句進行的操作&#xff1b;分析SQL語句相關的性能問題或僅僅質疑查詢優化器的決定…

蔚來李斌賣手機:安卓系統,蘋果售價,一年一發

?作者 | Amy 編輯 | 德新 車圈大佬的玩法真讓人尋不著套路&#xff01; 蘋果的庫克和小米的雷布斯&#xff0c;甚至是FF賈老板準備許久&#xff0c;都想分一塊新能源車的蛋糕&#xff0c;蔚來李斌卻反手進軍手機界&#xff0c;從宣布造手機到手機入網僅僅隔了一年。 近期…

說幾個常見的語法糖

目錄 面試回答 知識擴展 如何解語法糖&#xff1f; 糖塊一、swith 支持 String 與枚舉 糖塊二、泛型 糖塊三、自動裝箱與拆箱 糖塊四、枚舉 糖塊五、條件編譯 糖塊六、斷言 糖塊七、數值字面量 糖塊八、for-each 糖塊九、try-with-resource 可能遇到的坑 泛型 自…

Beats:安裝及配置 Metricbeat (一)- 8.x

在我之前的文章&#xff1a; Beats&#xff1a;Beats 入門教程 &#xff08;一&#xff09;Beats&#xff1a;Beats 入門教程 &#xff08;二&#xff09; 我詳細描述了如何在 Elastic Stack 7.x 安裝及配置 Beats。在那里的安裝&#xff0c;它通常不帶有安全及 Elasticsearc…

MapReduce介紹

目錄 ?一、什么是MapReduce 二、MapReduce 的設計思想 2.1 分而治之 2.2 構建抽象模型&#xff1a;Map和Reduce 2.3 隱藏系統層細節 三、MapReduce 的框架原理 3.1 MRv1工作原理 3.1.1 MRv1架構工作原理圖 3.1.1.1 流程說明 3.1.1.1.1 作業的提交 3.1.1.1.2 作業的初始化 3…

【AI大模型】訓練Al大模型 (上篇)

大模型超越AI 前言 潔潔的個人主頁 我就問你有沒有發揮&#xff01; 知行合一&#xff0c;志存高遠。 目前所指的大模型&#xff0c;是“大規模深度學習模型”的簡稱&#xff0c;指具有大量參數和復雜結構的機器學習模型&#xff0c;可以處理大規模的數據和復雜的問題&#x…

【Java】Queue中增加刪除方法的區別

offer&#xff0c;add 區別&#xff1a; 一些隊列有大小限制&#xff0c;因此如果想在一個滿的隊列中加入一個新項&#xff0c;多出的項就會被拒絕。 這時新的 offer 方法就可以起作用了。它不是對調用 add() 方法拋出一個 unchecked 異常&#xff0c;而只是得到由 offer() 返…

題目:售貨員的難題(狀壓dp)

售貨員的難題 題目描述輸入輸出格式輸入格式&#xff1a;輸出格式&#xff1a; 輸入輸出樣例輸入樣例#1&#xff1a;輸出樣例#1&#xff1a; 思路AC代碼&#xff1a; 題目描述 某鄉有n個村莊( 1 < n < 16 )&#xff0c;有一個售貨員&#xff0c;他要到各個村莊去售貨&am…

consul限制注冊的ip

假設當前服務器的ip是&#xff1a;192.168.56.130 1、允許 所有ip 注冊(驗證可行) consul agent -server -ui -bootstrap-expect1 -data-dir/usr/local/consul -nodedevmaster -advertise192.168.56.130 -bind0.0.0.0 -client0.0.0.0 2、只允許 當前ip 注冊 consul agent -…

Leetcode33 搜索旋轉排序數組

題解&#xff1a; /*** 旋轉排序數組可分為N1 N2兩個部分&#xff0c;如&#xff1a;[4,5,6,7,1,2,3]&#xff0c;N1為[4,5,6,7]&#xff0c;N2為[1,2,3]** 必然滿足以下兩個條件&#xff1a;* 1. N1和N2都是分別遞增的&#xff1b;* 2. N1中的所有元素大于N2中的所有元素;** …