溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Cable--新虛擬網(wǎng)絡(luò)架構(gòu)介紹

發(fā)布時(shí)間:2020-08-09 21:01:09 來源:ITPUB博客 閱讀:173 作者:HULK一線技術(shù)雜談 欄目:互聯(lián)網(wǎng)科技

女主宣言

本文主要介紹為了統(tǒng)一管理不同編排系統(tǒng)的網(wǎng)絡(luò)模塊,簡(jiǎn)化虛擬網(wǎng)絡(luò)功能的開發(fā)流程,虛擬網(wǎng)絡(luò)工作組實(shí)現(xiàn)的新虛擬網(wǎng)絡(luò)架構(gòu)--Cable。

前言

OpenStack架構(gòu)中,Neutron作為虛擬網(wǎng)絡(luò)模塊,管理虛機(jī)的網(wǎng)絡(luò)。隨著容器技術(shù)的發(fā)展,越來越多的應(yīng)用部署到Kubernetes等容器編排系統(tǒng)中,而Kubernetes也有自帶的網(wǎng)絡(luò)管理模塊,如Flannel,Calico等。分別維護(hù)OpenStack、Kubernetes網(wǎng)絡(luò)模塊,不僅增加管理成本,且無法滿足虛機(jī)和容器網(wǎng)絡(luò)互通等需求。為了統(tǒng)一管理不同編排系統(tǒng)的網(wǎng)絡(luò)模塊,簡(jiǎn)化虛擬網(wǎng)絡(luò)功能的開發(fā)流程,虛擬網(wǎng)絡(luò)工作組實(shí)現(xiàn)了新的虛擬網(wǎng)絡(luò)架構(gòu)Cable。

背景簡(jiǎn)介

目前公司的虛擬網(wǎng)絡(luò)架構(gòu)有如下不足:1 物理機(jī)、虛機(jī)和容器網(wǎng)絡(luò)分開管理,無法達(dá)到直接互聯(lián)互通。2 Neutron agent里的DHCP、metadata采用集中式服務(wù),健壯性不足。3 vxlan實(shí)現(xiàn)時(shí)需要外部路由器的支持,較為復(fù)雜。

新的網(wǎng)絡(luò)架構(gòu)需要滿足統(tǒng)一管理物理機(jī)、虛機(jī)和容器網(wǎng)絡(luò),實(shí)現(xiàn)直接互聯(lián)互通;簡(jiǎn)化Neutron agent,分布式架構(gòu)實(shí)現(xiàn)DHCP、metadata等功能;在虛擬網(wǎng)絡(luò)層面實(shí)現(xiàn)vxlan;提供流量鏡像等新功能。

方案實(shí)現(xiàn)

Cable整體框架圖

Cable--新虛擬網(wǎng)絡(luò)架構(gòu)介紹

為了滿足上訴需求,Cable架構(gòu)實(shí)現(xiàn)了如下兩個(gè)關(guān)鍵點(diǎn)

1  虛擬數(shù)據(jù)平面

虛擬數(shù)據(jù)平面不再基于OVS,而是采用功能更為豐富虛擬路由器vrouter.ko。vrouter.ko是Juniper的虛擬網(wǎng)絡(luò)架構(gòu)OpenContrail中的開源數(shù)據(jù)模塊。相比于OVS的簡(jiǎn)單數(shù)據(jù)包轉(zhuǎn)發(fā),vrouter.ko支持虛擬網(wǎng)絡(luò)路由、vxlan、流表配置安全組、流表配置nat/snat、流量鏡像等功能。豐富的數(shù)據(jù)平面功能,簡(jiǎn)化了網(wǎng)絡(luò)功能模塊的開發(fā)難度。

2  自研管理平面

重新自研開發(fā)管理平面。管理平面統(tǒng)一管理OpenStack和Kubernetes網(wǎng)絡(luò)模塊;采用Kubernetes里的watch方式,主動(dòng)監(jiān)控平臺(tái)資源變化情況,并執(zhí)行相關(guān)操作;分布式實(shí)現(xiàn)DHCP;用vrouter.ko中的flow功能實(shí)現(xiàn)nat、安全組等。

Cable工作流程

Cable--新虛擬網(wǎng)絡(luò)架構(gòu)介紹

當(dāng)用戶請(qǐng)求到達(dá)Neutron Server后,Contrail Neutron Plugin將請(qǐng)求轉(zhuǎn)發(fā)至Cable的控制節(jié)點(diǎn)(Control Node)。控制節(jié)點(diǎn)的proxy轉(zhuǎn)換請(qǐng)求發(fā)送至API,API將接收到的請(qǐng)求發(fā)送至相應(yīng)模塊,其中controller負(fù)責(zé)具體的計(jì)算和分配工作,IPAM模塊負(fù)責(zé)網(wǎng)絡(luò)地址的管理。每臺(tái)計(jì)算節(jié)點(diǎn)部署了Cable agent,通過Rest API監(jiān)聽Control Node的資源,如監(jiān)聽到資源變化,則調(diào)用vrouter.ko執(zhí)行相應(yīng)請(qǐng)求(添加/刪除/修改網(wǎng)絡(luò)信息)。

與Openstack兼容

Cable需要考慮如何與現(xiàn)有的虛擬網(wǎng)絡(luò)結(jié)構(gòu)兼容,使得Neutron能夠平滑過渡到新的架構(gòu)上。所以在保持Neutron原有接口不變的基礎(chǔ)上,將Neutron的db替換為etcd,并將DHCP-agent,metadata-agent,l3-agent替換為統(tǒng)一的cable-agent。將Neutron用Cable替代后,OpenStack的相關(guān)命令行和Restful API都沒有變化,實(shí)現(xiàn)無縫切換,方便運(yùn)維管理。

Cable代替Neutron后架構(gòu)圖

Cable--新虛擬網(wǎng)絡(luò)架構(gòu)介紹

總結(jié)

新的虛擬網(wǎng)絡(luò)架構(gòu),兼容了不同網(wǎng)絡(luò)平面,簡(jiǎn)化了網(wǎng)絡(luò)功能模塊,使得網(wǎng)絡(luò)更為健壯。目前Cable的整體架構(gòu)已經(jīng)基本開發(fā)完成,實(shí)現(xiàn)了DHCP、metadata和VLAN架構(gòu)網(wǎng)絡(luò),后續(xù)將實(shí)現(xiàn)安全組、VXLAN等更多功能,并實(shí)現(xiàn)自動(dòng)化部署,完善監(jiān)控功能。

由360云平臺(tái)團(tuán)隊(duì)打造的技術(shù)分享公眾號(hào),內(nèi)容涉及數(shù)據(jù)庫、大數(shù)據(jù)、微服務(wù)、容器、AIOps、IoT等眾多技術(shù)領(lǐng)域,通過夯實(shí)的技術(shù)積累和豐富的一線實(shí)戰(zhàn)經(jīng)驗(yàn),為你帶來最有料的技術(shù)分享

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI