Tungsten Fabric入門寶典丨編排器集成

作者:Tatsuya Naganawa 譯者:TF編譯組

Tungsten Fabric入門寶典系列文章,來自技術大牛傾囊相授的實踐經驗,由TF中文社區爲您編譯呈現,旨在幫助新手深入理解TF的運行、安裝、集成、調試等全流程。如果您有相關經驗或疑問,歡迎與我們互動,並與社區極客們進一步交流。更多TF技術文章,請點擊公號底部按鈕>學習>文章合集。

Tungsten Fabric已經實現了多個編排器的集成。

在內部,Tungsten Fabric的編排器集成組件基本上對每個編排器都執行相同的操作,包括:

  1. 在虛擬機或容器啓動時分配端口。
  2. 將其“插入(plug)”虛擬機或容器。

接下來我描述一下每個編排器要做的事。

OpenStack

當與OpenStack一起使用時,neutron-plugin將成爲OpenStack和Tungsten Fabric Controller之間的主要接口。

Neutron-plugin將直接加載到neutron-api進程中(某些模塊需要在neutron.conf中指定),並且該邏輯將執行與Neutron的request/response相關的操作,例如network-list或port-create等等。

該模塊的一個特性是它不會使用在MySQL中創建(在典型的OpenStack設置中)的Neutron數據庫。

由於它直接使用Tungsten Fabric db,因此某些功能(例如到虛擬機的橋接分配)將難以實現。

  • 據我所知,由於nova仍使用相同的vif分配邏輯,模擬Neutron響應來分配可用於Neutron的特定vif-type並非是不可能的,儘管不是所有組合全都經過測試。
  • SR-IOV是一個例外,因爲它的仿真得到很好的支持和測試。
  • https://github.com/Juniper/contrail-controller/wiki/SRIOV

當一個端口被分配了vrouter的vif-type時,將通過neutron-plugin由“create port”API自動完成該操作,它將爲vRouter使用nova-vif-driver來將執行一些任務,而不僅僅是在調用時創建一個tap設備,例如通過vrouter-port-control腳本在vRouter上創建vif等。(參見https://github.com/Juniper/contrail -nova-vif-driver)

  • 在大多數情況下,你無需深入研究這些行爲的細節。儘管在某些情況下(例如實時遷移在某處停止),你可能需要注意vif的狀態。

注意:Tungsten Fabric也有基於ml2的插件。

因此,如果用戶已經在MySQL中使用ml2,那麼可以首先將vRouter添加爲ml2的network-type之一,在特定的虛擬網絡中使用它,然後通過detach和attach接口,從其它ml2插件遷移到vRouter。(如果所有遷移完成,則可以選擇替換Neutron核心插件。)

此外,還添加了一些安裝的詳細信息。

Kubernetes

當與Kubernetes一起使用時,其行爲類似於OpenStack的情況,儘管它使用nova-vif-driver的CNI,以及使用neutron-api的kube-manager。

在創建容器時,kube-manager將在Tungsten Fabric控制器中創建一個端口,而cni會將端口分配給該容器。

vCenter

由於無法將模塊直接安裝在ESXi上,因此vCenter與Tungsten Fabric的集成和kvm採取的方法有所不同。

首先,要在ESXi之間實現overlay可用,需要在每個ESXi上創建一個vRouter VM(內部是一個簡單的CentOS vm)。

在ESXi上創建虛擬機時,將會附加到由vcenter-plugin(參見https://github.com/Juniper/contrail-vcenter-plugin)創建的dv-portgroup上。當在“vCenter”租戶中創建虛擬網絡時,通過ESXi的ip/user/pass安裝在每個vRouter VM上的vcenter-manager(參見https://github.com/Juniper/contrail-vcenter-manager),將要完成兩件事:

  1. 爲VM連接的dv-portgroup端口設置一個vlan-id。
  2. 在具有接口(vlan)的vRouter VM上創建一個vif,該接口具有與該dv-portgroup端口以及該虛擬網絡的VRF相同的vlan-id。

這樣,當虛擬機發送流量時,先進入dvswitch並進行標記,然後到達vRouter VM,接着取消標記,再進入該虛擬機所屬的特定的VRF。

  • 由於來自每個虛擬機的流量將使用不同的vlan-id進行標記,因此微分段(micro-segmentation)也得以實現。

在流量進入vRouter VM後,其行爲就與kvm的情況一樣了。

請注意,只有當虛擬機附加到Tungsten Fabric控制器創建的dv-portgroups時,這些行爲纔會被觸發,因此虛擬機的接口仍可以分配給某些vSS或vDS,以使用underlay訪問。

  • 甚至可以將vCenter和Tungsten Fabric控制器安裝到帶有vRouter的同一個ESXi上(如果已分配給“VM Network”,而不是由Tungsten Fabric控制器創建的dv-portgroup)。

由於vRouter的行爲與其它情況相同,因此在vCenter和OpenStack之間共享虛擬網絡,或它們之間的路由泄漏(route leak)也變得很容易獲得。因此,藉助Tungsten Fabric,通過共享網絡和網絡服務(例如fw、lb等),同時使用兩個VMI,就變得容易得多。


Tungsten Fabric入門寶典系列文章——

1.首次啓動和運行指南

  1. TF組件的七種“武器”

Tungsten Fabric 架構解析系列文章——

第一篇:TF主要特點和用例
第二篇:TF怎麼運作
第三篇:詳解vRouter體系結構
第四篇:TF的服務鏈
第五篇:vRouter的部署選項
第六篇:TF如何收集、分析、部署?
第七篇:TF如何編排
第八篇:TF支持API一覽
第九篇:TF如何連接到物理網絡
第十篇:TF基於應用程序的安全策略


Tungsten Fabric入門寶典丨編排器集成
Tungsten Fabric入門寶典丨編排器集成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章