k8s 自身原理 3
前面有分享到 master 主節(jié)點(diǎn)上的 四個(gè)組件,etcd,ApiServer,scheduler,controller manager
接下來我們分享一波 woker 節(jié)點(diǎn)上的組件,xdm 還記得 worker 節(jié)點(diǎn)上都有什么嗎?
kubelet
kube-proxy
實(shí)際的服務(wù)對(duì)應(yīng)的容器
kubectl 前面多多少少說了一些,但是 kubectl 具體是做啥的呢?
Kubelet
kubelet 是運(yùn)行在節(jié)點(diǎn)中的關(guān)鍵節(jié)點(diǎn)之一,主要負(fù)責(zé)運(yùn)行在該節(jié)點(diǎn)上的所有組件,總的來說 kubelet 會(huì)做這么 3 件事情:
請(qǐng)求 ApiServer ,注冊(cè)當(dāng)前節(jié)點(diǎn),創(chuàng)建一個(gè) node 資源
持續(xù)監(jiān)控 ApiServer ?關(guān)于需要調(diào)度到自己節(jié)點(diǎn)的 pod,并啟動(dòng) pod 容器
kubelet 組件也會(huì)運(yùn)行容器的存活探針
上述第二點(diǎn),是否會(huì)有這樣的疑問,kubelet 是自己去運(yùn)行 pod 嗎?
實(shí)際上是 kubelet 會(huì)去告知配置好的容器,在運(yùn)行的時(shí)候去拉取特定的鏡像,接下來,kubelet 還會(huì)監(jiān)控運(yùn)行中的容器,并和 ApiServer 通信,告知 容器的狀態(tài),事件 和 資源消耗
可以畫一個(gè)圖來進(jìn)行展示一波:

通過上圖我們可以看出,對(duì)于創(chuàng)建 pod,資源清單在 master 節(jié)點(diǎn)上或者是 worker 節(jié)點(diǎn)的本地清單目錄里,kubelet 都是可以運(yùn)行,管理和監(jiān)控他們的
上述的容器 B 就是通過 ApiServer 來獲取的 pod 資源清單,進(jìn)而創(chuàng)建的 pod 容器,和監(jiān)控 容器 B
容器 A 就會(huì) worker 節(jié)點(diǎn)自身清單目錄里面的 pod 清單,kubelet 仍然可以直接使用該清單創(chuàng)建 pod,管理并監(jiān)控容器 A
節(jié)點(diǎn)中另一關(guān)鍵組件 - kube-proxy
首先來看看 kube-proxy 這個(gè)組件具體是干啥的,還記得之前我們也分享過,分享關(guān)于證書,訪問 pod 元數(shù)據(jù)的那一篇
看名字應(yīng)該知道他是一個(gè) 代理,具體作用是確??蛻舳丝梢酝ㄟ^ k8s 的 api 連接到咱們定義的服務(wù)上,這個(gè)可以看看之前分享的文章 【k8s 系列】k8s 學(xué)習(xí)二十四,如何訪問 pod 元數(shù)據(jù)
那么為什么要叫他代理呢?
我們來回顧一下,叫代理,是因?yàn)樗且粋€(gè)中間商,可以促進(jìn)兩頭的人進(jìn)行正常的交易
例如:
小 A 期望和 小 C ?合作,但是由于某種限制,小 A 無法與小 C 搭上線,可 小 B 可以直接和小 C 合作,小 A 也可以和小 B 說上話,那么 小A 就拜托小 B 幫忙和小 C 合作,完成 小 A 需要做的事情
那么這個(gè)時(shí)候,這里的 小 B 就是一個(gè)代理,若把 小 A 看成客戶端,小 C 看成服務(wù)端,那么 小 B 還是一個(gè)正向代理 , 對(duì)于 小 C 來說,小 A 是不可見的,是被隱藏的,對(duì)這一塊感興趣的可以查看一下往期文章:簡(jiǎn)單理解正向代理和反向代理
那么此處的 kube-proxy 是代理什么角色呢?
剛開始的一種代理方式是這樣的, kube-proxy 代理配置 iptables, 將服務(wù)器的連接進(jìn)行攔截,重定向到代理服務(wù)器,并代理給到 pod 中
向后發(fā)展的時(shí)候,就演化成了 iptables 代理模式,就逐漸演化成了給 iptables 配置規(guī)則,直接重定向數(shù)據(jù)包給到任意一個(gè) pod 了,就不再是給代理服務(wù)器了
可以這樣理解,第一種和第二種代理方式的對(duì)比

明眼人都看得出來上述 演變過程的區(qū)別,第一種,iptables 會(huì)將數(shù)據(jù)傳遞給代理服務(wù)器,但是第二種是直接將數(shù)據(jù)給到 pod,所以 第二種的性能會(huì)更好,少了一個(gè)中間商賺差價(jià)
今天就到這里,學(xué)習(xí)所得,若有偏差,還請(qǐng)斧正
歡迎點(diǎn)贊,關(guān)注,收藏
朋友們,你的支持和鼓勵(lì),是我堅(jiān)持分享,提高質(zhì)量的動(dòng)力

好了,本次就到這里
技術(shù)是開放的,我們的心態(tài),更應(yīng)是開放的。擁抱變化,向陽而生,努力向前行。
我是阿兵云原生,歡迎點(diǎn)贊關(guān)注收藏,下次見~