導航:首頁 > 源碼編譯 > ovn編譯失敗

ovn編譯失敗

發布時間:2022-08-25 13:47:02

A. consul 怎麼移除失敗的服務

Docker 1.9.0開始支持多主機網路(multi-host networking)。我們可以通過OVNOpen vSwitch virtual network)來將Docker的網路和Open vSwitch結合起來。

簡介

對於OVN和Docker的多主機網路(multi-host networking),Docker需要分布式鍵值對存儲的支持。假設我們這里採用consul來提供分布式鍵值對存儲,並且你的主機IP地址為$HOST_IP。用戶可以使用下面的命令來啟動Docker進程:
docker daemon --cluster-store=consul://127.0.0.1:8500 /
--cluster-advertise=$HOST_IP:0

OVN為容器提供了網路虛擬化技術。OVN和Docker的結合使用存在兩種模式—underlay模式和overlay模式。

在underlay模式下,OVN要求配置OpenStack來提供容器網路。在這個模式下,用戶可以創建邏輯網路,並且讓運行在虛擬機中的容器、獨立的虛擬機(沒有容器運行在其中)和物理機器連接到同一個邏輯網路上。這是一種多租戶、多主機的解決辦法。

在overlay模式下,OVN可以為運行跨主機的容器們提供一個邏輯網路。這是一種單租戶(是否能擴展到多租戶取決於安全特性)、多主機的解決辦法。在這種模式下,你並不需要預創建好的OpenStack。

值得注意的是,用戶必須在他想要運行容器的虛擬機或主機上安裝並運行Open vSwitch。

Overlay 模式

Overlay模式下,需要Open vSwitch 2.5版本或後續版本的支持。

啟動核心模塊
OVN架構中會有一個核心的模塊來存儲網路信息。因此你需要在你其中一台主機(IP地址為$CENTRAL_IP,並且已經安裝和啟動了Open vSwitch)上啟動相關的核心服務。
首先我們讓ovsdb-server監聽一個TCP埠:

ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640

接下來,啟動ovn-northd後台進程。這個進程負責將來自Docker的網路信息(存儲在OVN_Northbound 資料庫中)轉換成邏輯流存儲於OVN_Southbound資料庫。

/usr/share/openvswitch/scripts/ovn-ctl start_northd

一次性配置
在每一個你打算創建容器的主機上,你需要運行以下的命令(如果你的OVS資料庫被清空,你需要再次運行這個命令。除此之外,重復運行這個命令都是沒有任何影響的)。
其他的主機可以通過$LOCAL_IP地址來訪問到這個主機,它就相當於本地通道的端點。
$ENCAP_TYPE是指用戶想使用的通道的類型。它可以是地geneve逗或者地stt逗。(注意,你的內核需要支持以上兩個類型,用戶可以通過運行以下命令來檢測內核是否支持以上類型:逗lsmod | grep $ENCAP_TYPE")

ovs-vsctl set Open_vSwitch . external_ids:ovn-remote="tcp:$CENTRAL_IP:6640"
external_ids:ovn-encap-ip=$LOCAL_IP external_ids:ovn-encap-type="$ENCAP_TYPE"

最後,啟動ovn-controller(你需要在每一次啟動時運行以下命令):

/usr/share/openvswitch/scripts/ovn-ctl start_controller

啟動Open vSwitch網路驅動
在默認情況下,Docker使用Linux網橋,但它支持外擴展。為了替換Linux網橋,我們需要先啟動Open vSwitch驅動。
Open vSwitch驅動使用了python Flask模塊來監聽Docker的網路API請求。因此,用戶需要先安裝Python 的Flask模塊。

easy_install -U pip
pip install Flask

在每一個你想要創建容器的主機上啟動Open vSwitch驅動:

ovn-docker-overlay-driver --detach

Docker內部包含了一些模塊,這些模塊擁有類似於OVN的邏輯交換機和邏輯埠的概念。請讀者仔細閱讀Docker的文檔來查找相關的命令。這里我們給出了一些案例:

NID=`docker network create -d openvswitch --subnet=192.168.1.0/24 foo`

docker network ls

你也可以通過以下命令從OVN的northbound資料庫中查找到這個邏輯交換機:

ovn-nbctl --db=tcp:$CENTRAL_IP:6640 lswitch-list

docker run -itd --net=foo --name=busybox busybox

ovn-nbctl --db=tcp:$CENTRAL_IP:6640 lport-list $NID

docker network create -d openvswitch --subnet=192.168.2.0/24 bar
docker network connect bar busybox

用戶可以刪除邏輯埠,或者將它們從運行容器上分離出來:

docker network disconnect bar busybox

docker network rm bar

Underlay模式

在這個模式下,OVN要求用戶預安裝好OpenStack。
用戶也可以刪除邏輯交換機:
用戶也可以創建一個邏輯埠,並將它添加到一個運行中的容器上:

顯示所有的邏輯埠

Docker現在並沒有一個CLI命令來羅列所有的邏輯埠,但是你可以從OVN的資料庫中找到它們:

Docker創建邏輯埠,並且將這個埠附加到邏輯網路上

比如說,將一個邏輯埠添加到容器busybox的逗foo地網路上:

顯示已有邏輯交換機

創建用戶自己的邏輯交換機

下面的命令創建了一個名為地foo逗的邏輯交換機,它的網段為地192.168.1.0/24地:

一次性配置
一個OpenStack的租戶創建了一個虛擬機,這個虛擬機擁有單張或多張網卡。如果租戶想要發送虛擬機中容器的網路包,他需要獲取這些網卡的port-id。port-id可以通過以下命令獲得:

nova list

然後運行:

neutron port-list --device_id=$id

在虛擬機中,下載OpenStack的RC文件,這些文件包含了租戶的信息(我們用openrc.sh來指代它)。編輯這個文件,並且將之前獲取到的port-id以 export OS_VIF_ID=$port-id的格式加入到文件中。文件的內容如下:

!/bin/bash

export OS_AUTH_URL=
export OS_TENANT_ID=
export OS_TENANT_NAME="demo"
export OS_USERNAME="demo"
export OS_VIF_ID=e798c371-85f4-4f2d-ad65-d09dd1d3c1c9
創建Open vSwitch網橋
如果用戶的虛擬機只有一個乙太網介面(比如說eth0),你需要將這個設備作為一個埠加入到Open vSwitch的地breth0地網橋上,並且移除它的IP地址,將其他相關的信息轉移到這個網橋上。(如果有多個網路介面,用戶自己創建Open vSwitch網橋,並且添加介面到網橋上)
如果你使用DHCP來獲取IP地址,你需要關閉監聽eth0的DHCP客戶端,並且開啟一個監聽Open vSwitch breth0網橋的DHCP客戶端。
你可以讓以上的步驟持久化,比如說你的虛擬機是Debian/Ubuntu,你可以參考 openvswitch-switch.README.Debian,如果你的虛擬機基於RHEL,你可以閱讀 README.RHEL完成持久化。
開啟Open vSwitch網路驅動
Open vSwitch驅動使用了Python Flask模塊來監聽Docker的網路API調用。這個驅動還使用了OpenStack的python-neutronclient庫。因此,如果你的主機還沒有安裝Python Flask或者python-neutronclient,你需要使用以下命令來安裝:

easy_install -U pip
pip install python-neutronclient
pip install Flask

運行openrc文件:

../openrc.sh

開啟網路驅動,並且提供OpenStack租戶的密碼:

ovn-docker-underlay-driver --bridge breth0 --detach

從現在開始,你可以使用和overlay模式類似的Docker命令了。請閱讀逗man ovn-architecture地來理解OVN的技術細節。

B. vue cli 安裝失敗與git版本號有關系么

vue cli 安裝失敗與git版本號有關系
啟動核心模塊
OVN架構中會有一個核心的模塊來存儲網路信息。因此你需要在你其中一台主機(IP地址為$CENTRAL_IP,並且已經安裝和啟動了Open vSwitch)上啟動相關的核心服務。
首先我們讓ovsdb-server監聽一個TCP埠:

ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640

接下來,啟動ovn-northd後台進程。這個進程負責將來自Docker的網路信息(存儲在OVN_Northbound 資料庫中)轉換成邏輯流存儲於OVN_Southbound資料庫。

閱讀全文

與ovn編譯失敗相關的資料

熱點內容
簡述高級語言進行編譯全過程 瀏覽:39
管家婆輝煌2加密狗挪到另一台電腦 瀏覽:760
摩托車在哪裡app看考題 瀏覽:356
蘋果5app在哪裡設置 瀏覽:737
如何查看伺服器的磁碟使用 瀏覽:165
python蒙特卡洛模型投點圖 瀏覽:330
安卓手機屬於什麼介面 瀏覽:742
微信群推廣網站源碼 瀏覽:764
九江離鷹潭源碼 瀏覽:719
python可以當作函數的返回值 瀏覽:422
地鐵逃生體驗服怎麼進入安卓 瀏覽:833
齊魯工惠app的中獎記錄在哪裡 瀏覽:759
linuxkill命令詳解 瀏覽:103
dhcp伺服器動態分配地址 瀏覽:265
門禁卡加密了能破解嗎 瀏覽:215
在哪裡下載百度網盤app 瀏覽:917
伺服器要升級什麼意思 瀏覽:831
銀行還房貸解壓方法 瀏覽:702
伺服器主機辦公如何提速 瀏覽:920
cad列印為pdf 瀏覽:418