如何從不同維度比較各種Docker網(wǎng)絡(luò)方案

這篇文章將為大家詳細講解有關(guān)如何從不同維度比較各種Docker網(wǎng)絡(luò)方案,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

公司專注于為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、商城網(wǎng)站開發(fā),成都微信小程序,軟件定制網(wǎng)站設(shè)計等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

我們將從不同維度比較各種網(wǎng)絡(luò)方案,大家在選擇的時候可以參考。CloudMan 的建議是:沒有最好的,只有最適合的,明確自己的需求,通過 PoC 選型。

Docker 起初只提供了簡單的 single-host 網(wǎng)絡(luò),顯然這不利于 Docker 構(gòu)建容器集群并通過 scale-out 方式橫向擴展到多個主機上。

在市場需求的推動下,跨主機容器網(wǎng)絡(luò)技術(shù)開始發(fā)展。這是一個非常活躍的技術(shù)領(lǐng)域,在不長的時間里已經(jīng)涌現(xiàn)了很多優(yōu)秀方案。本章我們詳細討論了幾種主流的方案 - Docker Overlay、Macvlan、Flannel、Weave 和 Calico?,F(xiàn)在是時候做個比較了,讓大家對各種方案的特點和優(yōu)勢有更深入的理解。

我們將從如下幾個方面比較,大家可以根據(jù)不同場景選擇最合適的方案。

網(wǎng)絡(luò)模型
采用何種網(wǎng)絡(luò)模型支持 multi-host 網(wǎng)絡(luò)?

Distributed Store 
是否需要 etcd 或 consul 這類分布式 key-value 數(shù)據(jù)庫存儲網(wǎng)絡(luò)信息?

IPMA
如何管理容器網(wǎng)絡(luò)的 IP?

連通與隔離
提供怎樣的網(wǎng)絡(luò)連通性?支持容器間哪個級別和哪個類型的隔離?

性能
性能比較。

網(wǎng)絡(luò)模型

跨主機網(wǎng)絡(luò)意味著將不同主機上的容器用同一個虛擬網(wǎng)絡(luò)連接起來。這個虛擬網(wǎng)絡(luò)的拓撲結(jié)構(gòu)和實現(xiàn)技術(shù)就是網(wǎng)絡(luò)模型。

Docker overlay 如名稱所示,是 overlay 網(wǎng)絡(luò),建立主機間 VxLAN 隧道,原始數(shù)據(jù)包在發(fā)送端被封裝成 VxLAN 數(shù)據(jù)包,到達目的后在接收端解包。

Macvlan 網(wǎng)絡(luò)在二層上通過 VLAN 連接容器,在三層上依賴外部網(wǎng)關(guān)連接不同 macvlan。數(shù)據(jù)包直接發(fā)送,不需要封裝,屬于 underlay 網(wǎng)絡(luò)。

Flannel 我們討論了兩種 backend:vxlan 和 host-gw。vxlan 與 Docker overlay 類似,屬于 overlay 網(wǎng)絡(luò)。host-gw 將主機作為網(wǎng)關(guān),依賴三層 IP 轉(zhuǎn)發(fā),不需要像 vxlan 那樣對包進行封裝,屬于 underlay 網(wǎng)絡(luò)。

Weave 是 VxLAN 實現(xiàn),屬于 overlay 網(wǎng)絡(luò)。

各方案的網(wǎng)絡(luò)模型描述如下:

如何從不同維度比較各種Docker網(wǎng)絡(luò)方案

Distributed Store

Docker Overlay、Flannel 和 Calico 都需要 etcd 或 consul。Macvlan 是簡單的 local 網(wǎng)絡(luò),不需要保存和共享網(wǎng)絡(luò)信息。Weave 自己負責在主機間交換網(wǎng)絡(luò)配置信息,也不需要 Distributed Store。

如何從不同維度比較各種Docker網(wǎng)絡(luò)方案

連通與隔離

同一 Docker Overlay 網(wǎng)絡(luò)中的容器可以通信,但不同網(wǎng)絡(luò)之間無法通信,要實現(xiàn)跨網(wǎng)絡(luò)訪問,只有將容器加入多個網(wǎng)絡(luò)。與外網(wǎng)通信可以通過 docker_gwbridge 網(wǎng)絡(luò)。

Macvlan 網(wǎng)絡(luò)的連通或隔離完全取決于二層 VLAN 和三層路由。

不同 Flannel 網(wǎng)絡(luò)中的容器直接就可以通信,沒有提供隔離。與外網(wǎng)通信可以通過 bridge 網(wǎng)絡(luò)。

Weave 網(wǎng)絡(luò)默認配置下所有容器在一個大的 subnet 中,可以自由通信,如果要實現(xiàn)隔離,需要為容器指定不同的 subnet 或 IP。與外網(wǎng)通信的方案是將主機加入到 weave 網(wǎng)絡(luò),并把主機當作網(wǎng)關(guān)。

Calico 默認配置下只允許位于同一網(wǎng)絡(luò)中的容器之間通信,但通過其強大的 Policy 能夠?qū)崿F(xiàn)幾乎任意場景的訪問控制。

性能

性能測試是一個非常嚴謹和復(fù)雜的工程,這里我們只嘗試從技術(shù)方案的原理上比較各方案的性能。

最樸素的判斷是:Underlay 網(wǎng)絡(luò)性能優(yōu)于 Overlay 網(wǎng)絡(luò)

Overlay 網(wǎng)絡(luò)利用隧道技術(shù),將數(shù)據(jù)包封裝到 UDP 中進行傳輸。因為涉及數(shù)據(jù)包的封裝和解封,存在額外的 CPU 和網(wǎng)絡(luò)開銷。雖然幾乎所有 Overlay 網(wǎng)絡(luò)方案底層都采用 Linux kernel 的 vxlan 模塊,這樣可以盡量減少開銷,但這個開銷與 Underlay 網(wǎng)絡(luò)相比還是存在的。所以 Macvlan、Flannel host-gw、Calico 的性能會優(yōu)于 Docker overlay、Flannel vxlan 和 Weave。

Overlay 較 Underlay 可以支持更多的二層網(wǎng)段,能更好地利用已有網(wǎng)絡(luò),以及有避免物理交換機 MAC 表耗盡等優(yōu)勢,所以在方案選型的時候需要綜合考慮。

關(guān)于如何從不同維度比較各種Docker網(wǎng)絡(luò)方案就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

標題名稱:如何從不同維度比較各種Docker網(wǎng)絡(luò)方案
URL鏈接:http://www.muchs.cn/article34/jsodpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、建站公司、靜態(tài)網(wǎng)站、用戶體驗品牌網(wǎng)站制作、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作