溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes實(shí)踐之五十一:kube-proxy運(yùn)行機(jī)制分析

發(fā)布時(shí)間:2020-08-11 04:16:16 來源:ITPUB博客 閱讀:219 作者:百聯(lián)達(dá) 欄目:云計(jì)算
一: Service,Endpoints與Pod的關(guān)系
kubernetes實(shí)踐之五十一:kube-proxy運(yùn)行機(jī)制分析
Kube-proxy進(jìn)程獲取每個(gè)Service的Endpoints,實(shí)現(xiàn)Service的負(fù)載均衡功能

二:Service的負(fù)載均衡轉(zhuǎn)發(fā)規(guī)則
kubernetes實(shí)踐之五十一:kube-proxy運(yùn)行機(jī)制分析
訪問Service的請求,不論是Cluster IP+TargetPort的方式;還是用Node節(jié)點(diǎn)IP+NodePort的方式,都被Node節(jié)點(diǎn)的Iptables規(guī)則重定向到Kube-proxy監(jiān)聽Service服務(wù)代理端口。kube-proxy接收到Service的訪問請求后,根據(jù)負(fù)載策略,轉(zhuǎn)發(fā)到后端的Pod。

三:kube-proxy工作原理
kubernetes實(shí)踐之五十一:kube-proxy運(yùn)行機(jī)制分析

1.Service在很多情況下只是一個(gè)概念,而真正將Service的作用實(shí)現(xiàn)的是kube-proxy服務(wù)進(jìn)程。

2.每個(gè)Node節(jié)點(diǎn)上都會運(yùn)行一個(gè)kube-proxy服務(wù)進(jìn)程。

3.對每一個(gè)TCP類型的Kubernetes Service,kube-proxy都會在本地Node節(jié)點(diǎn)上建立一個(gè)SocketServer來負(fù)責(zé)接收請求,然后均勻發(fā)送到后端某個(gè)Pod的端口上。這個(gè)過程默認(rèn)采用Round Robin負(fù)載均衡算法。

4.kube-proxy在運(yùn)行過程中動態(tài)創(chuàng)建與Service相關(guān)的Iptables規(guī)則,這些規(guī)則實(shí)現(xiàn)了ClusterIp及NodePort的請求流量重定向到kube-proxy進(jìn)程上對應(yīng)服務(wù)的代理端口功能。

5.kube-proxy通過查詢和監(jiān)聽API Server 中Service與Endpoints的變化,為每個(gè)Service都建立一個(gè)“服務(wù)代理對象”,并自動同步。服務(wù)代理對象是kube-proxy程序內(nèi)部的一種數(shù)據(jù)結(jié)構(gòu),它包括一個(gè)用于監(jiān)聽此服務(wù)請求的SockerServer,SocketServer的端口是隨機(jī)選擇一個(gè)本地空閑端口。此外,kube-proxy內(nèi)部創(chuàng)建了一個(gè)負(fù)載均衡器-LoadBalancer.

6.針對發(fā)生變化的Service列表,kube-proxy會逐個(gè)處理:
a. 如果沒有設(shè)置集群IP,則不做任何處理,否則,取該Service的所有端口定義列表。
b.為Service端口分配服務(wù)代理對象并為該Service創(chuàng)建相關(guān)的Iptables規(guī)則。
c.更新負(fù)載均衡器組件中對應(yīng)Service的轉(zhuǎn)發(fā)地址列表

7.kube-proxy在啟動時(shí)和監(jiān)聽到Service或Endpoint的變化后,會在本機(jī)Iptables的NAT表中添加4條規(guī)則鏈。
a.KUBE-PORTALS-CONTAINER: 從容器中通過Cluster IP 和端口號訪問service.
b.KUBE-PORTALS-HOST: 從主機(jī)中通過Cluster IP 和端口號訪問service.
c.KUBE-NODEPORT-CONTAINER:從容器中通過NODE IP 和端口號訪問service.
d. KUBE-NODEPORT-HOST:從主機(jī)中通過Node IP 和端口號訪問service.
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI