五分鐘技術(shù)趣談 | Openstack網(wǎng)絡(luò)模型場(chǎng)景分析
Part 01
Openstack是什么?
Openstack是一個(gè)云計(jì)算平臺(tái),它是由多個(gè)組件組合起來,為公有云、私有云和混合云的建設(shè)與管理提供軟件的開源項(xiàng)目。現(xiàn)在已經(jīng)有來自100多個(gè)國(guó)家的數(shù)萬名個(gè)人和200多家企業(yè)參與到Openstack的開發(fā),如 NASA、華為、谷歌、惠普、Intel、IBM、微軟等[1]。Openstack項(xiàng)目的首要任務(wù)是簡(jiǎn)化云的部署過程并為其帶來良好的可擴(kuò)展性。
Part 02
Openstack能干什么?
Openstack可以規(guī)劃并管理大量虛擬機(jī),從而允許企業(yè)或服務(wù)提供商按需提供計(jì)算資源;Openstack可以為云服務(wù)或云應(yīng)用提供所需的對(duì)象及塊存儲(chǔ)資源。為了解決傳統(tǒng)的網(wǎng)絡(luò)管理技術(shù)無法真正的實(shí)現(xiàn)高擴(kuò)展、高自動(dòng)化地管理下一代網(wǎng)絡(luò),Openstack 提供了插件式、可擴(kuò)展、API 驅(qū)動(dòng)型的網(wǎng)絡(luò)及IP管理功能。
Part 03
Openstack支持幾種網(wǎng)絡(luò)類型
Openstack網(wǎng)絡(luò)類型主要分為兩種:provider networks、和self-service networks,其中self-service比provider多了一個(gè)三層路由功能組件(Networking L3 Agent)[2][3],該組件負(fù)責(zé)實(shí)現(xiàn)網(wǎng)絡(luò)三層協(xié)議,為虛擬機(jī)完成SNAT、DNAT等地址的轉(zhuǎn)換與偽裝,提供安全彈性隔離的云網(wǎng)絡(luò)環(huán)境。
- provider network
圖片
provider網(wǎng)絡(luò)就是常說的橋接網(wǎng)絡(luò),虛擬機(jī)內(nèi)部網(wǎng)絡(luò)通過bridge的方式直接橋接到宿主機(jī)的某張物理網(wǎng)卡上,從而實(shí)現(xiàn)虛擬機(jī)可以正常的訪問外部網(wǎng)絡(luò),同時(shí)虛擬機(jī)外部網(wǎng)絡(luò)也可以訪問虛擬機(jī)的內(nèi)部網(wǎng)絡(luò)。
- self-service networks
self-service網(wǎng)絡(luò)通過在虛擬機(jī)和宿主機(jī)之間建立虛擬路由器,在虛擬機(jī)內(nèi)部可以是一個(gè)私有地址連接至虛擬路由器的一個(gè)接口上,而虛擬路由器的另外一端通過網(wǎng)橋橋接到宿主機(jī)的某一張物理網(wǎng)卡;所以self-service網(wǎng)絡(luò)很好的隱藏了虛擬機(jī)的地址,它能夠?qū)崿F(xiàn)虛擬機(jī)訪問外部網(wǎng)絡(luò),而外網(wǎng)用戶是不能夠直接訪問虛擬機(jī)的;為了實(shí)現(xiàn)從虛擬機(jī)外部網(wǎng)絡(luò)訪問虛擬機(jī),可以對(duì)虛擬機(jī)和外部的網(wǎng)絡(luò)做一對(duì)一nat綁定或者進(jìn)行端口映射[2][4]??傊畃rovider網(wǎng)絡(luò)具備的能力,self-service一般都具備,并在此基礎(chǔ)上還兼具高度的自定義內(nèi)部網(wǎng)絡(luò)功能。
Part 04
不同網(wǎng)絡(luò)類型應(yīng)用場(chǎng)景
1??provider應(yīng)用場(chǎng)景
provider networks拓?fù)渲?,虛擬機(jī)網(wǎng)口直接橋接在物理機(jī)網(wǎng)卡上,并且直接使用外部網(wǎng)絡(luò)分配的IP地址,該網(wǎng)絡(luò)類型盡可能減少了對(duì)Openstack內(nèi)部網(wǎng)絡(luò)組件的依賴,主要利用外部網(wǎng)絡(luò)基礎(chǔ)設(shè)施,相對(duì)self-service networs不僅穩(wěn)定性更強(qiáng),同時(shí)引入內(nèi)部網(wǎng)絡(luò)處理時(shí)延更小;由于網(wǎng)絡(luò)拓?fù)湎鄬?duì)簡(jiǎn)單,因此適用于對(duì)網(wǎng)絡(luò)特性要求不高的場(chǎng)景。
2??self-service應(yīng)用場(chǎng)景
self-service網(wǎng)絡(luò)拓?fù)渲?,虛擬機(jī)不是直接橋接在物理網(wǎng)卡上,自身具備一個(gè)私有網(wǎng)絡(luò),該私有網(wǎng)絡(luò)通過虛擬路由器與物理網(wǎng)卡相連,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相對(duì)復(fù)雜,相較provider直接橋接在物理網(wǎng)卡,self-service網(wǎng)絡(luò)引入虛擬路由器,會(huì)引入一定的處理時(shí)延;由于網(wǎng)絡(luò)拓?fù)湎鄬?duì)復(fù)雜,靈活性較強(qiáng),因此適用于對(duì)網(wǎng)絡(luò)特性有一定要求的場(chǎng)景。
Part 05
Openstack快速入門
Openstack本身部署設(shè)計(jì)開源組件較多,為了降低用戶和開發(fā)人員部署難度,社區(qū)提供了一個(gè)一鍵快速部署環(huán)境Devstack。Devstack是Openstack開發(fā)版,通過自動(dòng)化腳本,可以快速完成云計(jì)算系統(tǒng)環(huán)境的快速搭建和功能驗(yàn)證。
5.1 環(huán)境準(zhǔn)備
當(dāng)前Devstack[5]基于ubuntu22.04進(jìn)行了嚴(yán)苛測(cè)試,建議基于vmware創(chuàng)建ubuntu22.04虛擬機(jī),詳細(xì)配置如下:
虛擬機(jī)系統(tǒng) Ubuntu 22.04
RAM 至少8GB
硬盤 至少50GB
網(wǎng)卡 建議兩張:一個(gè)nat、一個(gè)橋接(nat:eth0 192.168.1.2, 橋接:eth2 192.168.2.2)
5.2 環(huán)境部署
(1)添加用戶
sudo useradd -s /bin/bash -d /opt/stack -m stack
(2)添加執(zhí)行權(quán)限
sudo chmod +x /opt/stack
(3)添加sudo權(quán)限
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo -u stack -i
(4)下載devstack
git clone
https://opendev.org/Openstack/devstack
cd devstack
(5)創(chuàng)建配置文件
vim local.conf
[[local|localrc]]
HOST_IP=192.168.2.2
SERVICE_HOST=192.168.2.2
MYSQL_HOST=192.168.2.2
RABBIT_HOST=192.168.2.2
GLANCE_HOSTPORT=192.168.2.2:9292
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.1.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.1.200,end=192.168.1.220
PUBLIC_NETWORK_GATEWAY="192.168.1.1"
PUBLIC_INTERFACE=eth0
# Open vSwitch provider networking configuration
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
(6)開始安裝
./stack.sh
Part 06
總結(jié)
總的來說,Openstack網(wǎng)絡(luò)類型分為provider和self-service兩種類型,針對(duì)不同的網(wǎng)絡(luò)場(chǎng)景,選擇對(duì)應(yīng)的部署方式:如云電腦、云桌面等網(wǎng)絡(luò)拓?fù)湎鄬?duì)固定,可以選擇provider網(wǎng)絡(luò)類型,但是需要注意provider對(duì)部署的基礎(chǔ)設(shè)施和機(jī)房網(wǎng)絡(luò)環(huán)境有一定要求;針對(duì)私有云、公有云等復(fù)雜業(yè)務(wù)場(chǎng)景可以選擇self-service網(wǎng)絡(luò)類型,以便滿足云內(nèi)部復(fù)雜的網(wǎng)絡(luò)需求。