你好,使用方法如下:
首先我們讓ovsdb-server監聽一個TCP埠:
ovs-appctl-tovsdb-serverovsdb-server/add-remoteptcp:6640
接下來,啟動ovn-northd後臺程序。這個程序負責將來自Docker的網路資訊(儲存在OVN_Northbound資料庫中)轉換成邏輯流儲存於OVN_Southbound資料庫。
/usr/share/openvswitch/scripts/ovn-ctlstart_northd
2、一次性配置
在每一個你打算建立容器的主機上,你需要執行以下的命令(如果你的OVS資料庫被清空,你需要再次執行這個命令。除此之外,重複執行這個命令都是沒有任何影響的)。
其他的主機可以透過$LOCAL_IP地址來訪問到這個主機,它就相當於本地通道的端點。
$ENCAP_TYPE是指使用者想使用的通道的型別。它可以是”geneve“或者”stt“。(注意,你的核心需要支援以上兩個型別,使用者可以透過執行以下命令來檢測核心是否支援以上型別:"llsmod|grep$ENCAP_TYPE")。
ovs-vsctlsetOpen_vSwitch.external_ids:ovn-remote="tcp:$CENTRAL_IP:6640"external_ids:ovn-encap-ip=$LOCAL_IPexternal_ids:ovn-encap-type="$ENCAP_TYPE"
最後,啟動ovn-controller(你需要在每一次啟動時執行以下命令):
/usr/share/openvswitch/scripts/ovn-ctlstart_controller
3、啟動OpenvSwitch網路驅動
在預設情況下,Docker使用Linux網橋,但它支援外擴充套件。為了替換Linux網橋,我們需要先啟動OpenvSwitch驅動。
OpenvSwitch驅動使用了PythonFlask模組來監聽Docker的網路API請求。因此,使用者需要先安裝Python的Flask模組。
easy_install-UpippipinstallFlask
在每一個你想要建立容器的主機上啟動OpenvSwitch驅動:
ovn-docker-overlay-driver--detach
Docker內部包含了一些模組,這些模組擁有類似於OVN的邏輯交換機和邏輯埠的概念。請讀者仔細閱讀Docker的文件來查詢相關的命令。這裡我們給出了一些案例:
1)建立使用者自己的邏輯交換機
下面的命令建立了一個名為”foo“的邏輯交換機,它的網段為”192.168.1.0/24”:
NID=`dockernetworkcreate-dopenvswitch--subnet=192.168.1.0/24foo`
2)顯示已有邏輯交換機
dockernetworkls
你也可以透過以下命令從OVN的northbound資料庫中查詢到這個邏輯交換機:
ovn-nbctl--db=tcp:$CENTRAL_IP:6640lswitch-list
3)Docker建立邏輯埠,並且將這個埠附加到邏輯網路上
比如說,將一個邏輯埠新增到容器busybox的“foo”網路上:
dockerrun-itd--net=foo--name=busyboxbusybox
4)顯示所有的邏輯埠
Docker現在並沒有一個CLI命令來羅列所有的邏輯埠,但是你可以從OVN的資料庫中找到它們:
ovn-nbctl--db=tcp:$CENTRAL_IP:6640lport-list$NID
5)使用者也可以建立一個邏輯埠,並將它新增到一個執行中的容器上:
dockernetworkcreate-dopenvswitch--subnet=192.168.2.0/24bardockernetworkconnectbarbusybox
dockernetworkdisconnectbarbusybox
dockernetworkrmbar
你好,使用方法如下:
首先我們讓ovsdb-server監聽一個TCP埠:
ovs-appctl-tovsdb-serverovsdb-server/add-remoteptcp:6640
接下來,啟動ovn-northd後臺程序。這個程序負責將來自Docker的網路資訊(儲存在OVN_Northbound資料庫中)轉換成邏輯流儲存於OVN_Southbound資料庫。
/usr/share/openvswitch/scripts/ovn-ctlstart_northd
2、一次性配置
在每一個你打算建立容器的主機上,你需要執行以下的命令(如果你的OVS資料庫被清空,你需要再次執行這個命令。除此之外,重複執行這個命令都是沒有任何影響的)。
其他的主機可以透過$LOCAL_IP地址來訪問到這個主機,它就相當於本地通道的端點。
$ENCAP_TYPE是指使用者想使用的通道的型別。它可以是”geneve“或者”stt“。(注意,你的核心需要支援以上兩個型別,使用者可以透過執行以下命令來檢測核心是否支援以上型別:"llsmod|grep$ENCAP_TYPE")。
ovs-vsctlsetOpen_vSwitch.external_ids:ovn-remote="tcp:$CENTRAL_IP:6640"external_ids:ovn-encap-ip=$LOCAL_IPexternal_ids:ovn-encap-type="$ENCAP_TYPE"
最後,啟動ovn-controller(你需要在每一次啟動時執行以下命令):
/usr/share/openvswitch/scripts/ovn-ctlstart_controller
3、啟動OpenvSwitch網路驅動
在預設情況下,Docker使用Linux網橋,但它支援外擴充套件。為了替換Linux網橋,我們需要先啟動OpenvSwitch驅動。
OpenvSwitch驅動使用了PythonFlask模組來監聽Docker的網路API請求。因此,使用者需要先安裝Python的Flask模組。
easy_install-UpippipinstallFlask
在每一個你想要建立容器的主機上啟動OpenvSwitch驅動:
ovn-docker-overlay-driver--detach
Docker內部包含了一些模組,這些模組擁有類似於OVN的邏輯交換機和邏輯埠的概念。請讀者仔細閱讀Docker的文件來查詢相關的命令。這裡我們給出了一些案例:
1)建立使用者自己的邏輯交換機
下面的命令建立了一個名為”foo“的邏輯交換機,它的網段為”192.168.1.0/24”:
NID=`dockernetworkcreate-dopenvswitch--subnet=192.168.1.0/24foo`
2)顯示已有邏輯交換機
dockernetworkls
你也可以透過以下命令從OVN的northbound資料庫中查詢到這個邏輯交換機:
ovn-nbctl--db=tcp:$CENTRAL_IP:6640lswitch-list
3)Docker建立邏輯埠,並且將這個埠附加到邏輯網路上
比如說,將一個邏輯埠新增到容器busybox的“foo”網路上:
dockerrun-itd--net=foo--name=busyboxbusybox
4)顯示所有的邏輯埠
Docker現在並沒有一個CLI命令來羅列所有的邏輯埠,但是你可以從OVN的資料庫中找到它們:
ovn-nbctl--db=tcp:$CENTRAL_IP:6640lport-list$NID
5)使用者也可以建立一個邏輯埠,並將它新增到一個執行中的容器上:
dockernetworkcreate-dopenvswitch--subnet=192.168.2.0/24bardockernetworkconnectbarbusybox
dockernetworkdisconnectbarbusybox
dockernetworkrmbar