溫馨提示×

溫馨提示×

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

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

如何分析Docker跨主機網(wǎng)絡(luò)

發(fā)布時間:2021-11-19 10:35:09 來源:億速云 閱讀:144 作者:柒染 欄目:云計算

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

前面已經(jīng)學(xué)習(xí)了 Docker 的幾種網(wǎng)絡(luò)方案:none、host、bridge 和 joined 容器,它們解決了單個 Docker Host 內(nèi)容器通信的問題。

跨主機網(wǎng)絡(luò)方案包括:

  1. docker 原生的 overlay 和 macvlan。

  2. 第三方方案:常用的包括 flannel、weave 和 calico。

docker 網(wǎng)絡(luò)是一個非?;钴S的技術(shù)領(lǐng)域,不斷有新的方案開發(fā)出來,那么要問個非常重要的問題了:

如此眾多的方案是如何與 docker 集成在一起的?

答案是:libnetwork 以及 CNM。

libnetwork & CNM

libnetwork 是 docker 容器網(wǎng)絡(luò)庫,最核心的內(nèi)容是其定義的 Container Network Model (CNM),這個模型對容器網(wǎng)絡(luò)進行了抽象,由以下三類組件組成:

Sandbox

Sandbox 是容器的網(wǎng)絡(luò)棧,包含容器的 interface、路由表和 DNS 設(shè)置。 Linux Network Namespace 是 Sandbox 的標準實現(xiàn)。Sandbox 可以包含來自不同 Network 的 Endpoint。

Endpoint

Endpoint 的作用是將 Sandbox 接入 Network。Endpoint 的典型實現(xiàn)是 veth pair,后面我們會舉例。一個 Endpoint 只能屬于一個網(wǎng)絡(luò),也只能屬于一個 Sandbox。

Network

Network 包含一組 Endpoint,同一 Network 的 Endpoint 可以直接通信。Network 的實現(xiàn)可以是 Linux Bridge、VLAN 等。

下面是 CNM 的示例:

如圖所示兩個容器,一個容器一個 Sandbox,每個 Sandbox 都有一個 Endpoint 連接到 Network 1,第二個 Sandbox 還有一個 Endpoint 將其接入 Network 2.

libnetwork CNM 定義了 docker 容器的網(wǎng)絡(luò)模型,按照該模型開發(fā)出的 driver 就能與 docker daemon 協(xié)同工作,實現(xiàn)容器網(wǎng)絡(luò)。docker 原生的 driver 包括 none、bridge、overlay 和 macvlan,第三方 driver 包括 flannel、weave、calico 等。


下面我們以 docker bridge driver 為例討論 libnetwork CNM 是如何被實現(xiàn)的。

這是前面我們討論過的一個容器環(huán)境:

  1. 兩個 Network:默認網(wǎng)絡(luò) “bridge” 和自定義網(wǎng)絡(luò) “my_net2”。實現(xiàn)方式是 Linux Bridge:“docker0” 和 “br-5d863e9f78b6”。

  2. 三個 Enpoint,由 veth pair 實現(xiàn),一端(vethxxx)掛在 Linux Bridge 上,另一端(eth0)掛在容器內(nèi)。

  3. 三個 Sandbox,由 Network Namespace 實現(xiàn),每個容器有自己的 Sanbox。

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

向AI問一下細節(jié)

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

AI