溫馨提示×

溫馨提示×

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

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

kubernetes中網(wǎng)絡(luò)原理的示例分析

發(fā)布時間:2021-12-24 16:08:45 來源:億速云 閱讀:116 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下kubernetes中網(wǎng)絡(luò)原理的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一:體系結(jié)構(gòu)圖
kubernetes中網(wǎng)絡(luò)原理的示例分析

二:說明

1.網(wǎng)絡(luò)命名空間
處于不同命名空間的網(wǎng)絡(luò)棧是完全隔離的,彼此之間無法通信,就好像兩個“平行宇宙”,通過對這種網(wǎng)絡(luò)資源的隔離,就能在一個宿主機上虛擬多個不同的網(wǎng)絡(luò)環(huán)境。

2.網(wǎng)絡(luò)命名空間的通信,Veth設(shè)備對
引入Veth設(shè)備對是為了在不同的網(wǎng)絡(luò)命名空間之間進(jìn)行通信,利用它可以直接將兩個網(wǎng)絡(luò)命名空間連接起來。由于要連接兩個網(wǎng)絡(luò)命名空間,所以Veth設(shè)備都是成對出現(xiàn)的,很像一對以太網(wǎng)網(wǎng)卡,并且中間有一根直連的網(wǎng)線。kubernetes中網(wǎng)絡(luò)原理的示例分析
3.網(wǎng)橋
Linux內(nèi)核通過一個虛擬的網(wǎng)橋設(shè)備來實現(xiàn)以太網(wǎng)口(Veth)之間的橋接。

4.Docker的網(wǎng)絡(luò)實現(xiàn)
Docker Daemon第一次啟動時會創(chuàng)建一個虛擬的網(wǎng)橋,默認(rèn)的名字是docker0,在私有網(wǎng)絡(luò)空間中給這個網(wǎng)橋分配一個子網(wǎng)。
針對由Docker創(chuàng)建出來的每一個容器,都會創(chuàng)建一個虛擬的Veth設(shè)備對,其中一端關(guān)聯(lián)到網(wǎng)橋上,另一端使用Linux的網(wǎng)絡(luò)命名空間技術(shù),映射到容器內(nèi)的eth0設(shè)備,然后從docker0網(wǎng)橋的地址段內(nèi)給eth0接口分配一個IP地址
kubernetes中網(wǎng)絡(luò)原理的示例分析
5.kubernetes容器之間通信
Pod內(nèi)的容器共享一個網(wǎng)絡(luò)命名空間,共享一個Linux協(xié)議棧,可以用localhost地址訪問彼此的端口

kubernetes中網(wǎng)絡(luò)原理的示例分析

6.kubernetes同一Node的Pod間通信
同一Node中Pod的默認(rèn)路由都是docker0的地址,由于它們關(guān)聯(lián)在同一個docker0網(wǎng)橋上,地址網(wǎng)段相同,所有它們之間應(yīng)當(dāng)是能直接通信的。

kubernetes中網(wǎng)絡(luò)原理的示例分析

7.kubernetes不同Node的Pod間通信
不同Node中Pod間通信要滿足2個條件: Pod的IP不能沖突; 將Pod的IP和所在的Node的IP關(guān)聯(lián)起來,通過這個關(guān)聯(lián)讓Pod可以互相訪問。

kubernetes中網(wǎng)絡(luò)原理的示例分析

8.Flannel工作原理

Flannel實質(zhì)上是一種“覆蓋網(wǎng)絡(luò)(overlay network)”,也就是將TCP數(shù)據(jù)包裝在另一種網(wǎng)絡(luò)包里面進(jìn)行路由轉(zhuǎn)發(fā)和通信,目前已經(jīng)支持UDP、VxLAN、AWS VPCGCE路由等數(shù)據(jù)轉(zhuǎn)發(fā)方式。

1. 數(shù)據(jù)從源容器中發(fā)出后,經(jīng)由所在主機的docker0虛擬網(wǎng)卡轉(zhuǎn)發(fā)到flannel0虛擬網(wǎng)卡,這是個P2P的虛擬網(wǎng)卡,flanneld服務(wù)監(jiān)聽在網(wǎng)卡的另外一端。

2.Flannel通過Etcd服務(wù)維護(hù)了一張節(jié)點間的路由表。

3. 源主機的flanneld服務(wù)將原本的數(shù)據(jù)內(nèi)容UDP封裝后根據(jù)自己的路由表投遞給目的節(jié)點的flanneld服務(wù),數(shù)據(jù)到達(dá)以后被解包,然后直接進(jìn)入目的節(jié)點的flannel0虛擬網(wǎng)卡,然后被轉(zhuǎn)發(fā)到目的主機的docker0虛擬網(wǎng)卡,最后就像本機容器通信一下的有docker0路由到達(dá)目標(biāo)容器。kubernetes中網(wǎng)絡(luò)原理的示例分析

9.Calico架構(gòu)kubernetes中網(wǎng)絡(luò)原理的示例分析

以上是“kubernetes中網(wǎng)絡(luò)原理的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

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

AI