精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

在Docker中使用Open vSwitch創建跨主機的容器網絡

責任編輯:editor005

2016-04-11 15:09:21

摘自:SDNLAB

如果你使用DHCP服務獲取IP地址,首先需要停掉在物理網卡(如eth0)上監聽的DHCP客戶端,然后在新創建的網橋(如breth0)上啟動監聽。

本文介紹了如何使用Open vSwitch為Docker 1.9.0及以后版本提供網絡支持。操作前請先確認你已經按照INSTALL.md(http://openvswitch.org/support/dist-docs/INSTALL.md)編譯,或者通過包管理器安裝了Open vSwitch。關于如何安裝Docker,請參考www.docker.com上提供的介紹。

Docker從1.9.0版本之后提供了跨主機的網絡支持。通過將Docker和Open vSwitch整合,則可以利用Open vSwitch virtual network(OVN)進行互聯互通。

安裝

要想使用OVN實現Docker的跨主機網絡,Docker在啟動時必須指定分布式鍵值存儲服務,比如你打算使用Consul作為鍵值存儲,啟動Docker daemon時請使用如下參數:

其中$HOST_IP是你主機本地IP。

OVN為容器提供了虛擬化的網絡,目前OVN和Docker的集成,有兩種方式:即”underlay”模式和”overlay”模式。

在”underlay”模式下,OVN依賴于OpenStack為容器提供網絡。此模式下,使用者可以讓虛擬機中的容器、獨立虛擬機(不運行任何容器)、物理機都連接到相同的邏輯網絡下。這是種多租戶、多主機的解決方案。

在”overlay”模式下,OVN可以用來創建跨主機的容器間網絡。此模式是單租戶(當然在不需要額外的網絡隔離的情況下可以拓展成多租戶)、多主機的解決方案。此模式不依賴OpenStack。

無論哪種模式,想要讓容器使用OVN都必須在所有容器宿主機上安裝Open vSwitch。

Overlay模式
使用OVN的”overlay”模式要求的Open vSwitch最小版本是2.5。

初始化中心節點

在OVN的架構中,需要有一個中心節點用來存儲網絡定義。在需要部署的機器中選擇一臺作為中心節點,IP地址是$CENTRAL_IP。

通過以下命令啟動ovsdb-server,監聽在TCP的6640端口:

啟動ovn-northd守候進程,這個進程用來將Docker存儲在OVN_Northbound中的網絡定義同步到OVN_Southbound中:

初始化各節點(僅需執行一次)

以下過程在每個你需要啟動容器的機器上僅執行一次(除非OVS數據庫清空后,任何其他清空執行多次都會帶來問題。)

下面的命令中,$LOCAL_IP指宿主機可以被訪問的IP地址,OVS將通過這個IP與其他宿主機通訊。$ENCAP_TYPE指通道類型。目前可選項是”geneve” 和 “stt”。(注意你的宿主機內核必須支持你選擇的$ENCAP_TYPE類型。這兩種類型都默認包含在了Open vSwitch的內核模塊中。如果你的Open vSwitch內核模塊來自于上游Linux發行版,那么geneve最低支持的內核版本是3.18。發行版中的內核模塊不支持stt。你可以通過lsmod | grep $ENCAP_TYPE來確認是否支持相應的模式。)

最后,啟動ovn-controller,記得將啟動命令添加到系統啟動腳本中。

啟動Open vSwitch驅動

默認情況下,Docker使用Linux bridge作為網絡驅動,當然了它支持其他外部驅動。為了讓Docker使用Open vSwitch,你需要啟動Open vSwitch驅動。

Open vSwitch驅動使用了Python的flask模塊來監聽Docker的網絡API調用。所以如果你的主機還沒有安裝flask,使用以下命令安裝:

在所有準備運行Docker容器的機器上都要執行以下命令以啟動驅動:

Docker內建的網絡和OVN的網絡概念非常一致,請查閱Docker的文檔獲取更全面的命令指南,這里只是個簡單的例子。

創建邏輯交換機

使用以下命令創建一個名為foo,子網為192.168.1.0/24的邏輯交換機。

列出所有邏輯交換機

你也可以在OVN的northbound數據庫中查看邏輯交換機,通過以下命令:

將Docker容器連接到邏輯交換機

例如將一個busybox容器連接到邏輯網絡foo上,只需要執行:

列出所有邏輯端口

目前Docker尚未提供命令來列出交換機端口,所以你可以通過直接查詢OVN數據庫來查看:

創建邏輯交換機并將正在運行的容器連接

你可以通過如下命令斷開容器和邏輯交換機的連接

刪除邏輯交換機

Underlay模式

此模式需要預先安裝運行OpenStack。

初始化各節點(僅需執行一次)

OpenStack租戶先要在他們的網絡內創建單或多網絡端口的虛擬機。租戶需要先取得想要作為宿主機的端口ID(port-id)。可以通過以下命令取得虛擬機關聯的網絡端口ID:

然后執行:

在虛擬機中,下載包含租戶信息的OpenStack RC文件(下文稱之為’openrc.sh’)。編輯并添加之前獲得的端口ID信息到這個文件中,例如:

Shell

1

2

3

4

5

6

#!/bin/bashexport OS_AUTH_URL=http://10.33.75.122:5000/v2.0export OS_TENANT_ID=fab106b215d943c3bad519492278443dexport OS_TENANT_NAME="demo"export OS_USERNAME="demo"export OS_VIF_ID=e798c371-85f4-4f2d-ad65-d09dd1d3c1c9

創建Open vSwitch橋接

如果你的虛擬機只有一個網卡(如’eth0′),你創建一個名為breth0的網橋,然后將eth0網卡上的IP和路由信息全部轉移到網橋上。(如果有多塊網卡,你需要在想要發送網絡流量的那塊上進行這個操作。)

如果你使用DHCP服務獲取IP地址,首先需要停掉在物理網卡(如eth0)上監聽的DHCP客戶端,然后在新創建的網橋(如breth0)上啟動監聽。

根據你的虛擬機的不同,你需要把以上操作設置到啟動腳本中。

例如你的虛擬機運行Debian/Ubuntu,可以參考openvswitch-switch.README.Debian(http://openvswitch.org/support/dist-docs/debian/openvswitch-switch.README.Debian)。如果虛擬機運行RHEL系統,參考README.RHEL(http://openvswitch.org/support/dist-docs/rhel/README.RHEL)。

啟動Open vSwitch網絡驅動

Open vSwitch驅動使用了Python的flask模塊來監聽Docker的網絡API調用,也使用了OpenStack的python-neutronclient庫。如果你還沒有安裝他們,請先安裝:

執行openrc文件:

啟動網絡驅動,并在詢問時提供你的OpenStack租戶密碼:

接下來,你可以使用上文在Overlay模式中介紹的命令來使用Docker了。

供多關于OVN架構的細節,請通過man ovn-architecture參考。
 

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 梧州市| 江阴市| 松原市| 安阳县| 乌兰浩特市| 宁都县| 上高县| 涟水县| 凉山| 惠水县| 南平市| 治多县| 荣成市| 韩城市| 怀远县| 祥云县| 绥棱县| 鹿邑县| 沙坪坝区| 松桃| 大埔区| 班戈县| 兰州市| 从江县| 化州市| 福安市| 铁岭市| 长治县| 西昌市| 齐齐哈尔市| 新泰市| 岳普湖县| 紫金县| 乌苏市| 苍山县| 师宗县| 镇安县| 平塘县| 常德市| 卫辉市| 连江县|