前面有分享到 master 主節點上的 四個組件,etcd,ApiServer,scheduler,controller manager
接下來我們分享一波 woker 節點上的組件,xdm 還記得 worker 節點上都有什么嗎?
- kubelet
- kube-proxy
- 實際的服務對應的容器
kubectl 前面多多少少說了一些,但是 kubectl 具體是做啥的呢?
Kubelet
kubelet 是運行在節點中的關鍵節點之一,主要負責運行在該節點上的所有組件,總的來說 kubelet 會做這么 3 件事情:
- 請求 ApiServer ,注冊當前節點,創建一個 node 資源
- 持續監控 ApiServer 關于需要調度到自己節點的 pod,并啟動 pod 容器
- kubelet 組件也會運行容器的存活探針
上述第二點,是否會有這樣的疑問,kubelet 是自己去運行 pod 嗎?
實際上是 kubelet 會去告知配置好的容器,在運行的時候去拉取特定的鏡像,接下來,kubelet 還會監控運行中的容器,并和 ApiServer 通信,告知 容器的狀態,事件 和 資源消耗
可以畫一個圖來進行展示一波:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hLLj0cPX-1691758700208)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d42b3b7fa34f4ed29978262fece33a33~tplv-k3u1fbpfcp-zoom-1.image)]
通過上圖我們可以看出,對于創建 pod,資源清單在 master 節點上或者是 worker 節點的本地清單目錄里,kubelet 都是可以運行,管理和監控他們的
上述的容器 B 就是通過 ApiServer 來獲取的 pod 資源清單,進而創建的 pod 容器,和監控 容器 B
容器 A 就會 worker 節點自身清單目錄里面的 pod 清單,kubelet 仍然可以直接使用該清單創建 pod,管理并監控容器 A
節點中另一關鍵組件 - kube-proxy
首先來看看 kube-proxy 這個組件具體是干啥的,還記得之前我們也分享過,分享關于證書,訪問 pod 元數據的那一篇
看名字應該知道他是一個 代理,具體作用是確保客戶端可以通過 k8s 的 api 連接到咱們定義的服務上,這個可以看看之前分享的文章 【k8s 系列】k8s 學習二十四,如何訪問 pod 元數據
那么為什么要叫他代理呢?
我們來回顧一下,叫代理,是因為他是一個中間商,可以促進兩頭的人進行正常的交易
例如:
小 A 期望和 小 C 合作,但是由于某種限制,小 A 無法與小 C 搭上線,可 小 B 可以直接和小 C 合作,小 A 也可以和小 B 說上話,那么 小A 就拜托小 B 幫忙和小 C 合作,完成 小 A 需要做的事情
那么這個時候,這里的 小 B 就是一個代理,若把 小 A 看成客戶端,小 C 看成服務端,那么 小 B 還是一個正向代理 , 對于 小 C 來說,小 A 是不可見的,是被隱藏的,對這一塊感興趣的可以查看一下往期文章:簡單理解正向代理和反向代理
那么此處的 kube-proxy 是代理什么角色呢?
剛開始的一種代理方式是這樣的, kube-proxy 代理配置 iptables, 將服務器的連接進行攔截,重定向到代理服務器,并代理給到 pod 中
向后發展的時候,就演化成了 iptables 代理模式,就逐漸演化成了給 iptables 配置規則,直接重定向數據包給到任意一個 pod 了,就不再是給代理服務器了
可以這樣理解,第一種和第二種代理方式的對比
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9yqACsbP-1691758700210)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a21f3a94e4084ec68550b515e412d37d~tplv-k3u1fbpfcp-zoom-1.image)]
明眼人都看得出來上述 演變過程的區別,第一種,iptables 會將數據傳遞給代理服務器,但是第二種是直接將數據給到 pod,所以 第二種的性能會更好,少了一個中間商賺差價
今天就到這里,學習所得,若有偏差,還請斧正
歡迎點贊,關注,收藏
朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ucgb5BqC-1691758700211)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84ed6ab6b83748b18a8763f30e7a57d8~tplv-k3u1fbpfcp-zoom-1.image)]
好了,本次就到這里
技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。
我是阿兵云原生,歡迎點贊關注收藏,下次見~
更多的可以查看 零聲每晚八點直播:https://ke.qq.com/course/417774