您好,登錄后才能下訂單哦!
本文整理自瞻博網(wǎng)絡(luò)杰出工程師Sukhdev Kapur在“TF中文社區(qū)成立暨第一次全員大會(huì)”上的演講,增加了對(duì)于TF功能的描述,pdf點(diǎn)擊下載。https://tungstenfabric.org.cn/assets/uploads/files/powering-edge-cloud-and-multi-cloud-with-tungsten-fabric-sukhdev-kapur.pdf 更多會(huì)議資料,請(qǐng)?jiān)?quot;TF中文社區(qū)“公眾號(hào)后臺(tái)回復(fù)“成立大會(huì)”獲取。
瞻博網(wǎng)絡(luò)杰出工程師Sukhdev Kapur
大家好,我叫SukhdevKapur,來自Tungsten Fabric(以下簡稱TF)社區(qū)技術(shù)指導(dǎo)委員會(huì),下面我為大家介紹一下TF的架構(gòu)和技術(shù)的現(xiàn)狀,以及最新的進(jìn)展。
我們可以看一下這張TF的宏觀架構(gòu)圖,整體圖描述是設(shè)備的物理連接,而右上角有虛機(jī)之間的邏輯網(wǎng)絡(luò),TF基本的工作原理和機(jī)制,就是你創(chuàng)建VM或者POD,然后(通過SDN)把它們放到這些邏輯網(wǎng)絡(luò)里。
在這些邏輯網(wǎng)絡(luò)中,你能夠以根據(jù)自己業(yè)務(wù)需要,放置任何虛機(jī)、PODS、或者裸服務(wù)器,它們的物理位置在哪里沒有關(guān)系,它們可能會(huì)在一個(gè)集群里,也可能在一個(gè)機(jī)架中,這都沒有關(guān)系。
大家再看一下它下面底層的部分,TF會(huì)利用虛擬的路由器(計(jì)算節(jié)點(diǎn)上),來負(fù)責(zé)是這些虛擬的工作負(fù)載的轉(zhuǎn)發(fā),而左邊是一個(gè)物理網(wǎng)絡(luò)的連接,例如一個(gè)裸機(jī)的物理網(wǎng)絡(luò),一旦你做好了網(wǎng)絡(luò)定義,它可能會(huì)和實(shí)際網(wǎng)絡(luò)連接,也可能會(huì)和右邊邏輯網(wǎng)絡(luò)里頭虛擬網(wǎng)絡(luò)的虛機(jī)來進(jìn)行連接
第四部分(上半部分)是CONTRAILController(SDN控制器),是做配置控制分析和CSN的。
第五部分是網(wǎng)關(guān)的功能,它可能是一個(gè)物理網(wǎng)關(guān),或者是一個(gè)虛擬的網(wǎng)關(guān),當(dāng)數(shù)據(jù)中心的虛機(jī)需要對(duì)外互聯(lián)的時(shí)候,通過IP的組網(wǎng)——也就是MPLS這種協(xié)議——進(jìn)出骨干網(wǎng)絡(luò)。
所有這一切,都是通過一個(gè)ORCHESTRATOR編排器去管理,它可能是OpenStack、K8s或OpenShift,通過API來調(diào)度TF來工作。
這張圖說的是TF的路由vRouter的架構(gòu),左上角是vRouter的Agent,主要是控制的部分,在這里它會(huì)通過路由的學(xué)習(xí),VRFs的定義,以及策略的定義,如果虛擬路由器要進(jìn)行策略的執(zhí)行,必須是由Agent去控制的:它來決定網(wǎng)絡(luò)的流量是允許通過,還是拒絕,如果允許的話,應(yīng)該把它轉(zhuǎn)發(fā)到哪個(gè)位置。
你可以看到,vRouter有一個(gè)轉(zhuǎn)發(fā)的路徑,學(xué)習(xí)的路徑進(jìn)行封裝,然后做二層或者三層的數(shù)據(jù)流量的轉(zhuǎn)發(fā)。
這是TF虛擬路由器的四種部署模式,左上角是默認(rèn)的模式,在內(nèi)核的vRouter部署。
右上角呢?如果你在一個(gè)高吞吐、高流量的狀態(tài)下,網(wǎng)絡(luò)支持DPPK的話,TF可以有的DPDKvRouter的部署。
左下角其實(shí)是一種混合部署的模式,如果你有好幾個(gè)VNF這種虛擬網(wǎng)絡(luò)的功能,可以用到SR-IOV的話,可以采用SR-IOV和內(nèi)核的vRouter共存的混合模式。
第四種就是基于SmartNIC的vRouter,也就是說,這些VM可以充分地利用到所有處理器的能力。
大家再來看一下TF和Kubernetes(以下簡稱K8s)的集成,首先,TF的CONTRAIL Controller會(huì)和K8s通過API進(jìn)行通訊,那么,某一個(gè)指定的位置,它是如何得到IP地址以及策略的呢?首先,K8s會(huì)和TF的Scheduler也就是調(diào)度管理程序進(jìn)行通訊,再通過調(diào)度管理程序和CNI Plugin插件進(jìn)行聯(lián)系,在左上角就表示vRouter是如何獲得在K8s這邊的策略,去進(jìn)行IPAM的讀取和執(zhí)行的,簡單一點(diǎn)說,K8s的管理器會(huì)和TF的CONTRAIL Controller進(jìn)行通訊,確定網(wǎng)絡(luò)的策略,然后TF的Controller會(huì)把這個(gè)策略發(fā)布到vRouter。
TF的技術(shù)演進(jìn),一開始主要是基于虛機(jī)部署,后來開始支持容器技術(shù),現(xiàn)在已經(jīng)演進(jìn)到了微服務(wù)(Microservices)的架構(gòu)。目前我們的TF在部署是完全采用containers的方式進(jìn)行部署,大概有27-30個(gè)左右的image。
K8s是一個(gè)非常扁平的網(wǎng)絡(luò),租戶和租戶之間可以進(jìn)行任意的溝通,工作負(fù)載之間也是這樣。
基于這樣的場景,我們就通過網(wǎng)絡(luò)策略的執(zhí)行,去實(shí)現(xiàn)網(wǎng)絡(luò)中租戶的隔離,也就是說,只是在指定區(qū)域內(nèi)的用戶之間,才可以進(jìn)行溝通。
那么在TF這一層,我們把管理又向前推進(jìn)了一步,即在一個(gè)租戶的空間之內(nèi),我們也可以決定哪個(gè)位置和哪個(gè)位置可以溝通,也就是哪個(gè)POD和哪個(gè)POD通訊。
下面為大家介紹一下TF的獨(dú)特的策略框架。假設(shè)我們有一個(gè)應(yīng)用,該應(yīng)用有三層,分成三層,分別是Web層、應(yīng)用層和數(shù)據(jù)庫層。而這個(gè)應(yīng)用的生命周期會(huì)有三個(gè)階段,分別是開發(fā)的階段,部署準(zhǔn)備的階段,和最后的生產(chǎn)階段。
不同的階段可能部署在不同的網(wǎng)絡(luò)環(huán)境,甚至于不同的云平臺(tái)中,那么在最上面的開發(fā)階段,不同的層之間(層也是tie的概念),會(huì)有一些安全的訪問策略(圖中P1的策略也),而這個(gè)策略可能在部署準(zhǔn)備階段也需要(圖中P2的策略)在生產(chǎn)階段也需要,在不使用TF的情況下,很有可能會(huì)出現(xiàn)重復(fù)的策略,而是用TF之后,我們可以只使用一個(gè)策略
我們所做的就是把策略的管理進(jìn)行了簡化,首先就是降低了復(fù)雜性,簡化管理,提高了可伸縮度。一旦定義好了策略,你就可以在各種各樣的環(huán)境之下,進(jìn)行規(guī)模性的、可伸縮的復(fù)用,包括公有云、私有云,以及多云的環(huán)境。
給大家介紹一個(gè)實(shí)際的策略框架用例。
假設(shè)我們有一個(gè)應(yīng)用,我們允許它的Web層和應(yīng)用層進(jìn)行溝通,那么不管是在開發(fā)階段,還是在生產(chǎn)階段,我們都可以使用這樣一個(gè)定義,比如在開發(fā)階段的Web層,也可以和生產(chǎn)環(huán)境下的應(yīng)用層進(jìn)行溝通。
但是,也許我們并不希望有這樣的事情發(fā)生,我們不希望某一個(gè)開發(fā)人員能夠隨意修改在生產(chǎn)環(huán)境下的代碼。這時(shí)你不用去改變策略,只需要在策略里頭加上App Match Deployment的標(biāo)簽,它可以去規(guī)定——比如說只有在開發(fā)階段的Web層和開發(fā)階段的應(yīng)用層才可以進(jìn)行通信。
同樣地,如果你的應(yīng)用是一個(gè)地理分布式的應(yīng)用,你可以通過定義策略,讓在地理區(qū)域A的Web層和在地理區(qū)域B的應(yīng)用層之間進(jìn)行通信。
如果你不希望這種跨層、跨區(qū)域的通信產(chǎn)生,就在AppMatch Deployment的后頭再加上End Site。所以說這個(gè)match,不光是它的部署,還有它的位置,你都要把它match一下。
我們再加一層,你看我們第二個(gè)策略的意思,就是說只要是這個(gè)站點(diǎn)我們match上了,匹配上了,那么它們都可以和數(shù)據(jù)庫進(jìn)行訪問。
這樣的一種策略在管理方面非常的有用。如果你有一個(gè)非常大型的跨地理區(qū)域分布式的金融應(yīng)用,它可能使用了多個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)上還有數(shù)百種的應(yīng)用,這個(gè)時(shí)候你只需要一個(gè)策略,就可以對(duì)整個(gè)分布式的金融應(yīng)用進(jìn)行管理。
同時(shí),TF還可以實(shí)現(xiàn)多云部署的自動(dòng)化管理。比如說我們在駐地這里自動(dòng)創(chuàng)建了一個(gè)叫做多云的網(wǎng)關(guān)MC-GW,它會(huì)建立一個(gè)通道,和在云端的(比如說AWS上的)同樣的部署,自動(dòng)地進(jìn)行安全的連接。
這里也要看,你在云上部署的工作負(fù)載到底是什么種類的。有了這個(gè)工作負(fù)載,你可以在本地云的環(huán)境下進(jìn)行管理,而TF能夠給你一個(gè)多云的可視性。
大家可以看一下,如果你自己去進(jìn)行多云管理,需要通過很多的流程來實(shí)現(xiàn)。而TF只需要一個(gè)單一的圖形用戶界面,就能夠輕松地進(jìn)行多云管理,你需要做的,只是做幾下點(diǎn)擊的動(dòng)作。
下面來介紹一下TF的多云服務(wù)鏈。大家看到最上面有兩個(gè)網(wǎng)絡(luò)在駐地,左邊的是2.2.2.4,右邊的是3.3.3.5,然后有一個(gè)服務(wù)的實(shí)例,假設(shè)服務(wù)實(shí)例是POD的虛擬化服務(wù),通過TF的服務(wù)鏈,可以將工作負(fù)載從左邊的網(wǎng)絡(luò)傳到右邊。
同樣地,如果要在不同的公有云上也去部署這樣的虛擬網(wǎng)絡(luò),你可以通過TF,從駐地到多云建立這樣一個(gè)服務(wù)鏈。
我來總結(jié)一下,只需要一個(gè)SDN的控制器,就能夠去管理連接——不管是金屬裸機(jī)、K8s CNI、OpenStack,還是左邊的各種邊緣的站點(diǎn)——并且提供非常豐富的網(wǎng)絡(luò)功能。
TF在邊緣計(jì)算的環(huán)境下也做出了自己的貢獻(xiàn),這是另外一個(gè)開源的項(xiàng)目,TF實(shí)現(xiàn)了和Akraino的集成,能夠?yàn)檫吘売?jì)算這樣的場景提供支持,它是純基于K8s原生基礎(chǔ)架構(gòu)的,非常適用于輕量級(jí)的,像工業(yè)自動(dòng)化這種應(yīng)用?;旧纤渴鸬沫h(huán)境是非常小的,目標(biāo)行業(yè)主要是電信運(yùn)營商和企業(yè)級(jí)用戶。
這是另外一個(gè)Akraino和TF集成的用例,主要是打造電信云,目前美國電信運(yùn)營商AT&T就做了這樣的一個(gè)架構(gòu)部署。這里主要是使用SR-IOV這種虛擬化,我們所做的就是把TF作為一個(gè)單一的SDN,它的部署模式包含了以上所有類型。
這是第三個(gè)用例,它是一種叫做微云的軟件堆棧,主要應(yīng)用于移動(dòng)的場景,例如手機(jī)游戲,工作負(fù)載是移動(dòng)化的這種架構(gòu)。
在這里我們是怎么做的?首先,我們有一個(gè)DME(分布式的匹配引擎),它知道有多少個(gè)設(shè)備或者多少個(gè)移動(dòng)用戶接入進(jìn)來,并根據(jù)移動(dòng)用戶的數(shù)量,啟動(dòng)微云資源管理器去做信息傳遞;然后微云資源管理器就會(huì)匹配到相應(yīng)的資源;接下來CRM會(huì)和TF的控制器進(jìn)行溝通,來進(jìn)行這種資源的部署;再到下面一層,通過vRouter的轉(zhuǎn)發(fā)層,和TF的控制器進(jìn)行聯(lián)系。
熟悉OpenStack的朋友都知道,它有兩種部署模式,一種是單一的插件方式,另一種是基于ML2的部署。
TF專門有一個(gè)Networking Open Contrail,可以將TF作為一個(gè)ML2的插件去啟動(dòng)。這樣做有什么好處呢?我們可以同時(shí)去運(yùn)行基于OVS、SR-IOV和vRouter的這工作。
你可以用OpenStack來運(yùn)行OVS、SR-IOV的工作負(fù)載,并且在網(wǎng)絡(luò)層面使用我們的TF去進(jìn)行管理。
更多了解Tungsten Fabric
TF中文社區(qū)介紹
TF主要特點(diǎn)和用例
TF怎么運(yùn)作
詳解vRouter體系結(jié)構(gòu)
關(guān)注微信:TF中文社區(qū)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。