Docker網(wǎng)絡增強項目或?qū)⒁磥韄第1頁
Docker網(wǎng)絡增強項目或?qū)⒁磥韄第2頁
Docker網(wǎng)絡增強項目或?qū)⒁磥韄第3頁
Docker網(wǎng)絡增強項目或?qū)⒁磥韄第4頁
Docker網(wǎng)絡增強項目或?qū)⒁磥韄第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 Docker網(wǎng)絡增強項目或?qū)⒁磥?上一篇文章Docker原生網(wǎng)絡和實現(xiàn)原理中,我們討論了Docker原生網(wǎng)絡實現(xiàn)原理,在Docker原生網(wǎng)絡模型在保證端口映射、鏈接正確的情況下,可實現(xiàn)同一宿主機上容器間的通信和宿主機之間的通信。也在前期文章Openstack Nova如何實現(xiàn)與Hypervisor對接中提到了Nova如何與Docker對接,具體可以參考下圖以助于加深理解。 但針對安全或者特殊功能要求特殊的網(wǎng)絡環(huán)境,Docker這個原生的網(wǎng)絡功能就會受限制。于是許多項目致力于擴展Docker網(wǎng)絡生態(tài)。下面我們重點介紹下這些基于Docker網(wǎng)絡優(yōu)化的6個項目及方案。Libnetwork方案介

2、紹 Libnetwork是Docker公司正在開發(fā)的新的網(wǎng)絡底層架構,由libcontainer和Docker Engine中的網(wǎng)絡相關的代碼合并而成。Libnetwork的目標是引入了容器網(wǎng)絡模型(CNM),并為應用程序提供一致的編程API接口以及網(wǎng)絡抽象。CNM得到了網(wǎng)絡方面的合作伙伴Cisco、IBM、Joyent、Microsoft、Rancher、VMware和Weave的支持,使Libnetwork發(fā)展為一個跨平臺的容器網(wǎng)絡管理工具。 Libnetwork的容器網(wǎng)絡模型包含了三個重要概念,Network Sandbox,Endpoint和Network。 網(wǎng)絡沙盒Network S

3、andbox承載Docker容器中一個網(wǎng)絡配置的隔離、獨立運行環(huán)境。Endpoint用于在某個網(wǎng)絡上進行網(wǎng)絡通訊的接口,一個Endpoint只能加入一個network Sandbox,同時,多個Endpoint也可以在一個網(wǎng)絡沙盒中共存。Network就是一個唯一的、可識別的endpoint組,組內(nèi)endpoint可以相互通訊。不同網(wǎng)絡組內(nèi)的endpoint不能通信??梢詣?chuàng)建兩個完全隔離的Frontendnetwork和Backend network。Pipework方案介紹 Pipework是由Docker開發(fā)者通過Shell開發(fā),作為一個權宜之計來簡化Docker網(wǎng)絡配置流程,這個項目使得

4、高級網(wǎng)絡配置變得容易,能夠自動完成一些網(wǎng)絡功能配置,但功能有限。 Pipework首先會檢查是否存在br0網(wǎng)橋,若不存在,就自己創(chuàng)建。若ovs開頭,就會創(chuàng)建OpenVswitch網(wǎng)橋,以br開頭,創(chuàng)建Linux網(wǎng)橋。創(chuàng)建veth pair設備,用于為容器提供網(wǎng)卡并連接到br0網(wǎng)橋。 使用Docker inspect找到容器在主機中的pid,然后通過PID將容器的網(wǎng)絡命名空間鏈接到/var/run/netns/目錄下。這么做的目的是,方便在主機上使用ip netns命令配置容器的網(wǎng)絡。將之前創(chuàng)建的veth pair設備分別加入容器和網(wǎng)橋中(在容器中默認為eth1)。 最后會配置新網(wǎng)卡eth1的I

5、P。若指定為網(wǎng)關地址,那么pipework會改變默認路由eth0和docker0為該IP,容器通往外網(wǎng)的流量會經(jīng)由新配置的eth1出去。Socketplane方案介紹 Socketplane是SND創(chuàng)業(yè)公司,目前已經(jīng)被Docker公司收購,其實現(xiàn)方式是在原有的Docker命令上做了一層封裝,通過攔截并修改Docker Client發(fā)送給Docker engine的命令來實現(xiàn)網(wǎng)絡安全和維護的目前。 Socketplane依賴于OpenvSwitch和Consul。Socketplane作為虛擬交換機實現(xiàn)底層網(wǎng)絡通信,Consul實現(xiàn)消息同步和服務發(fā)現(xiàn)。SocketPlane在 Socket 層面

6、提供了一個網(wǎng)絡的抽象層,對開發(fā)者屏蔽VLANs, VXLANs, Tunnels 或TEPs等概念,實現(xiàn)和OpenvSwitch集成,支持多網(wǎng)絡和分布式 IP 地址管理,通過可管理的方式去解決各種網(wǎng)絡問題。Weave方案介紹 Weave方案包含兩大組件,用戶態(tài)Shell腳本和Weave虛擬路由容器。Weave虛擬路由容器需要在每個宿主機上布置,把不同宿主機的route容器連接起來。 不同主機間的網(wǎng)絡通信依賴于Weave虛擬route,通過route攔截所有普通容器的IP請求,以UDP數(shù)據(jù)包發(fā)送到其他宿主機上的普通容器,實現(xiàn)跨主機的多個容器扁平網(wǎng)絡。但是Weave解決了不同主機網(wǎng)絡間通信問題。F

7、lannel方案介紹 Flannel原名為Rudder,是由CoreOS團隊開發(fā),這個項目被開發(fā)的初衷是為每一個宿主系統(tǒng)提供一個共享、完整的網(wǎng)絡子網(wǎng),配合Google kubernetes使用,但在其他場景下也被用來簡化端口映射和網(wǎng)絡管理的復雜性。 Flannel和OpenvSwitch設計思路基本一致,在Docker在宿主機上創(chuàng)建一個網(wǎng)橋時,通過采用Flannel自己的網(wǎng)橋替代它。其差別在于Flannel通信是用軟的UDP來包裝IP數(shù)據(jù)包,而OpenvSwitch用的是采用SDN思想。Flannel網(wǎng)絡配置是寫入到etcd集群中,F(xiàn)lannel進程一般運行在三臺主機上,Docker啟動時,運行的Docker從主機所屬的完整子網(wǎng)網(wǎng)段中動態(tài)分配IP。Tinc方案介紹 Tinc是一個輕量的VPN軟件,也是一個開源的VPN解決方案,它采用隧道和加密實現(xiàn)。Tinc是一個健壯的解決方案,它能夠使私有網(wǎng)絡對任何應用透明。 關于Tinc方案介紹的資料并不多,主要借助VPN技術實現(xiàn)數(shù)據(jù)網(wǎng)絡安全傳輸,由于采用了“虛擬專用網(wǎng)”技術,即用戶實際上并不存在一個獨立

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論