Hi!這裏是TF中文社區關於Tungsten Fabric架構解析內容的第二篇,解讀TF如何運做。本文介紹TF控制器和vRouter的軟件體系結構,以及在虛擬機或容器啓動時,vRouters與Tungsten Fabric控制器之間的交互。 Tungsten Fabric架構解析系列文章,旨在幫助初入TF社區的朋友答疑解惑,咱們將系統介紹TF有哪些特色、如何運做、如何收集/分析/部署、如何編排、如何鏈接到物理網絡等話題。
Tungsten Fabric控制器集成了OpenStack或Kubernetes等雲管理系統,其功能是確保在建立虛擬機(VM)或容器時,根據控制器或協調器中指定的網絡和安全策略爲其提供網絡鏈接。安全
Tungsten Fabric由兩個主要軟件組成:
• Tungsten Fabric 控制器– 一組維護網絡和網絡策略模型的軟件服務,爲實現高可用性,一般在多個服務器上運行。
• Tungsten Fabric vRouter– 安裝在運行工做負載(虛擬機或容器)的每一個主機上,vRouter執行封包轉發,並實施網絡和安全策略。服務器
Tungsten Fabric的典型部署以下圖所示:微信
Tungsten Fabric控制器經過軟件插件與協調器集成在一塊兒,該插件實現了協調器的網絡服務。網絡
例如,OpenStack的Tungsten Fabric插件實現了Neutron API,kube-network-manager_和_CNI(容器網絡接口)組件使用Kubernetes k8s API監聽網絡相關事件。架構
Tungsten Fabric vRouter取代Linux橋接器和IP表,或計算主機上的Open vSwitch網絡,控制器配置vRouters以實現所需的網絡和安全策略。併發
VM的封包若是要轉發到不一樣主機上,vRouter會加MPLS over UDP / GRE或VXLAN封裝,其中外部標頭的目標是運行目標VM的主機的IP地址。控制器負責在每一個實現網絡策略的vRouter的每一個VRF中安裝路由集。ide
例如:默認狀況下,同一網絡中的虛擬機能夠相互通訊,但不能與不一樣網絡中的虛擬機進行通訊,除非在網絡策略中特別容許。控制器和vRouters之間的通訊是經過一種普遍使用且靈活的消息傳遞協議XMPP實現的。網站
雲自動化的一個關鍵特性,是用戶能夠爲其應用程序請求資源,而無需瞭解如何或在何處提供資源的詳細信息。插件
這一般是經過一個門戶網站完成的,該門戶網站提供了一組服務產品,用戶能夠從中選擇,並將其轉換爲API調用到底層系統,包括雲協調器,以啓動具備必要內存、磁盤和CPU的虛擬機或容器,知足用戶要求的能力。3d
服務產品能夠像具備特定內存、分配給它的磁盤和CPU的虛擬機同樣簡單,也能夠包括由多個預配置軟件實例組成的整個應用程序堆棧。
Tungsten Fabric控制器和vRouter的架構,以及與協調器的交互,以下圖所示:
該圖顯示了一個協調器工做虛擬機管理程序和虛擬機,這和容器協調器的信息流相似,例如Kubernetes(帶有Tungsten Fabric的Kubernetes容器)。
主機上運行的工做負載的每一個接口都鏈接到VRF,包含相應網絡的L2和L3轉發表,其中包含該接口的IP地址。
vRouter實現物理路由器執行的集成橋接和路由(IRB)功能。vRouter僅具備位於該主機上有網絡接口的VRF,包括鏈接到主機物理接口的Fabric VRF。使用VRF可使不一樣的虛擬網絡具備重疊的IP和MAC地址,不會定義任何網絡策略來容許它們之間的流量。
Tungsten Fabric虛擬化網絡使用封裝隧道在不一樣主機上的VM之間傳輸封包,而封裝和解封裝在Fabric VRF和VM VRF之間發生。
建立新的虛擬工做負載時,會在特定於orchestrator的插件中看到一個事件並將其發送到控制器,而後控制器會向代理髮送請求,以便在虛擬網絡的VRF中安裝路由,而後代理將其配置在轉發器裏。
使用單個接口在新VM上配置網絡的邏輯流程以下:
在此過程結束時,已更新數據中心中全部vRouter的VRF中的路由已經有新VM的信息。
Tungsten Fabric架構解析文章第一篇:TF主要特色和用例
關注微信:TF中文社區