Tungsten Fabric架構解析丨TF如何編排
OpenStack和TF整合
OpenStack是虛擬機器和容器的領先的開源編排系統。Tungsten Fabric提供了Neutron網路服務的實現,並提供了許多附加功能。
在OpenStack中,使用者組被分配到“專案”,其中諸如VM和網路之類的資源是私有的,並且其他專案中的使用者無法看到(除非特別啟用)。
在vRouters中使用VRF且每個網路都有路由表,可以直接在網路層中實施專案隔離,因為只有到允許目的地的路由才會分發到計算節點上的vRouters中的VRF,並且不會發生泛洪vRouter執行的代理服務。
網路服務是Neutron,計算代理是Nova(OpenStack計算服務)。
當兩者都部署在OpenStack環境中時,Tungsten Fabric可以在VM和Docker容器之間提供無縫網路。
在下圖中,可以看到OpenStack的Tungsten Fabric外掛提供了從Neutron網路API到Tungsten Fabric API呼叫的對映,後者在Tungsten Fabric控制器中執行。
Tungsten Fabric支援網路和子網的策略,以及OpenStack網路策略和安全組。可以在OpenStack或Tungsten Fabric中建立這些實體,並且在兩個系統之間同步任何更改。
此外,Tungsten Fabric還支援OpenStack LBaaS v2 API。
但是,由於Tungsten Fabric透過OpenStack提供了豐富的網路功能超集,因此許多網路功能僅透過Tungsten Fabric API或GUI提供。這些包括指定route target以實現與外部路由器的連線、服務鏈、配置BGP路由策略和應用程式策略。
當OpenStack使用Tungsten Fabric網路時,完全支援應用程式安全性。可以在專案、網路、主機、VM或介面級別應用Tungsten Fabric標記,並應用於標記物件中包含的所有實體。
此外,Tungsten Fabric還支援用於網路和安全性的資源,可以使用OpenStack Heat模板進行控制。
Kubernetes容器和TF整合
容器允許多個程式在同一作業系統核心上執行,但每個程式都可以訪問自己的工具、庫和配置檔案。
與每個VM執行其自己的完整客戶機作業系統的虛擬機器相比,容器需要更少的計算開銷。在容器中執行的應用程式通常啟動速度更快,並且比在VM中執行的相同應用程式執行得更好,這也是為什麼人們越來越關注在資料中心和NFV中使用容器的原因之一。
Docker是一個軟體層,它使容器可以跨作業系統版本移植,並且Kubernetes作為部署容器的典型介面,管理伺服器上容器的建立和銷燬。
如上圖所示,Kubernetes管理容器組,它們共同執行某些功能,稱為_pods. pod中的容器在同一伺服器上執行並共享IP地址。
一組相同的pod(通常在不同的伺服器上執行)形成_services_,並且必須將指向服務的網路流量定向到服務中的特定pod。在Kubernetes網路實現中,特定pod的選擇是由應用程式本身使用傳送pod中的本機Kubernetes API來執行的。對於非本機應用程式,是由負載平衡代理使用中實現的虛擬IP地址,來執行傳送伺服器上的Linux iptables。
大多數應用程式都是非本機的,因為它們是在未考慮Kubernetes的情況下開發的現有程式碼的埠,因此使用了負載平衡代理。
Kubernetes環境中的標準網路實際上是扁平的,任何pod都可以與任何其他pod進行通訊。如果目標pod的名稱或其IP地址是已知的,則不會阻止從一個名稱空間(類似於_project _in OpenStack)中的pod到另一個名稱空間中的pod之間的通訊。
雖然此模型適用於屬於單個公司的超大規模資料中心,但它不適合資料中心在許多最終客戶之間共享的服務提供商,也不適合必須將不同組的流量彼此隔離的企業。
Tungsten Fabric虛擬網路可以整合在Kubernetes環境中,以與OpenStack類似的方式提供一系列多租戶網路功能。
帶有Kubernetes的Tungsten Fabric 配置如下圖所示。
使用Kubernetes編排和Docker容器的Tungsten Fabric架構類似於OpenStack和KVM / QEMU,其vRouter在主機Linux OS中執行,幷包含帶有虛擬網路轉發表的VRF。
pod中的所有容器共享一個具有單個IP地址的網路堆疊(圖中的IP-1,IP-2),但是偵聽不同的TCP或UDP埠,並且每個網路堆疊的介面連線到vRouter的VRF。
一個名為_kube-network-manager _listens的程式使用Kubernetes _k8s _API偵聽與網路相關的訊息,並將這些訊息傳送到Tungsten Fabric API。
在伺服器上建立pod時,本地_kubelet_和vRouter代理之間透過Container Network Interface(CNI)進行通訊,以將新介面連線到正確的VRF。
服務中的每個pod在虛擬網路中分配唯一的IP地址,並且還為服務中的所有pods分配浮動IP地址。服務地址用於將流量從其他服務中的pod或外部客戶端或伺服器傳送到服務中。
當流量從pod傳送到服務IP時,連線到該pod的vRouter將使用到服務IP地址的路由執行ECMP負載平衡,該服務IP地址將解析為構成目標服務的各個pod的介面。
當流量需要從Kubernetes叢集外部傳送到服務IP時,可以將Tungsten Fabric配置為建立一對(用於冗餘)_ha-proxy_負載均衡器,它可以執行基於URL的路由到Kubernetes服務,最好使用浮動IP地址避免暴露叢集的內部IP地址。
這些外部可見的服務地址解析為到服務Pod的ECMP負載平衡路由。
在Kubernetes叢集中使用Tungsten Fabric虛擬網路時,不需要Kubernetes代理負載均衡。
提供外部訪問的其他替代方法包括:使用與負載均衡器物件關聯的浮動IP地址,或使用與服務關聯的浮動IP地址。
在Kubernetes中建立或刪除服務和pod時,kube-network-manager程式會檢測k8s API中的相應事件,並使用Tungsten Fabric API根據為Kubernetes群集配置的網路模式應用網路策略。 各種選項總結在下表中。
Tungsten Fabric為Kubernetes世界帶來了許多強大的網路功能,與OpenStack的功能相同,包括:
-
IP地址管理
-
DHCP
-
DNS
-
負載均衡
-
網路地址轉換(1:1浮動IP和N:1 SNAT)
-
訪問控制列表
-
基於應用程式的安全性
TF和vCenter整合{#tf-vcenter}
VMware vCenter廣泛用作虛擬化平臺,但需要手動配置網路閘道器,以實現位於不同子網中的虛擬機器與vCenter群集外部目標之間的網路連線。
可以在現有vCenter環境中部署Tungsten Fabric虛擬網路,以提供先前列出的所有網路功能,同時保留使用者可能依賴的工作流,以使用vCenter GUI和API建立和管理虛擬機器。
此外,還在vRealize Orchestrator和vRealize Automation中實現了對Tungsten Fabric的支援,以便Tungsten Fabric中的常見任務(如建立虛擬網路和網路策略)可以包含在這些工具中實現的工作流中。
使用VMware vCenter的Tungsten Fabric架構如下圖所示。
虛擬網路和策略可以在Tungsten Fabric中直接建立,也可以在vRO / vRA工作流程中使用TF任務建立。
當vCenter使用其GUI或vRO / vRA建立VM時,Tungsten Fabric的vCenter外掛將在vCenter訊息匯流排上看到相應的訊息,這是Tungsten Fabric在伺服器(將要建立VM的伺服器)上配置vRouter的觸發器。
每個VM的每個介面都連線到一個埠組,該埠組對應於該介面所在的虛擬網路。埠組具有與之關聯的VLAN,由Tungsten Fabric控制器使用vCenter中的“VLAN override”選項設定,並且埠組的所有VLAN都透過中繼埠組傳送到vRouter。
Tungsten Fabric控制器將介面的VLAN對映到包含該子網的虛擬網路的VRF上。剝離VLAN標記,並執行VRF中的路由查詢。
如本文件前面所述,透過Tungsten Fabric與vCenter的配合使用,使用者可以訪問Tungsten Fabric提供的全部網路和安全服務,包括零信任微分段,代理DHCP,DNS和DHCP,可避免網路泛洪,服務鏈,幾乎無限的規模,以及與物理網路的無縫互連。
###巢狀的Kubernetes與OpenStack或vCenter{#tf-nested-kubernetes}
假設已經透過某種方式預先配置了執行容器的KVM主機。
還有一種替代方法,是使用OpenStack或vCenter來配置容器執行的VM,並使用Tungsten Fabric管理OpenStack或vCenter建立的VM與Kubernetes建立的容器之間的虛擬網路,如下圖所示。
編排器(OpenStack或vCenter),Kubernetes Master和Tungsten Fabric在一組伺服器或VM中執行。
編排器配置為使用Tungsten Fabric管理計算群集,因此每臺伺服器上都有vRouters。
可以將虛擬機器啟動並配置為執行Kubelet和Tungsten Fabric的CNI外掛。這些虛擬機器可供Kubernetes主機執行,並透過Tungsten Fabric管理網路。
由於同一個Tungsten Fabric負責管理orchestrator和Kubernetes的網路,因此可以在VM之間,容器之間,以及VM和容器之間實現無縫聯網。
在巢狀場景中,Tungsten Fabric提供與前面所述相同的隔離級別,並且多個Kubernetes Masters可以共存,並且執行Kubelet的多個VM可以在同一主機上執行。 這允許提供多租戶Kubernetes容器服務。
更多Tungsten Fabric解析文章
關注微信:TF中文社群
郵箱:tfzw001@163.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957171/viewspace-2671348/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Tungsten Fabric架構解析丨TF如何收集、分析、部署?架構
- Tungsten Fabric架構解析丨TF支援API一覽架構API
- Tungsten Fabric架構解析丨TF怎麼運作?架構
- Tungsten Fabric架構解析丨TF的服務鏈架構
- Tungsten Fabric架構解析丨TF基於應用程式的安全策略架構
- Tungsten Fabric架構解析|TF主要特點和用例架構
- Tungsten Fabric架構解析丨vRouter的部署選項架構VR
- Tungsten Fabric架構解析丨詳解vRouter體系結構架構VR
- Tungsten Fabric入門寶典丨編排器整合
- TF實戰丨使用Vagrant安裝Tungsten Fabric
- Tungsten Fabric架構和最新技術進展丨TF成立大會演講實錄架構
- Tungsten Fabric入門寶典丨多編排器用法及配置
- Tungsten Fabric入門寶典丨TF元件的七種“武器”元件
- Tungsten Fabric知識庫丨這裡有18個TF補丁程式,建議收藏
- Tungsten Fabric知識庫丨構建、安裝與公有云部署
- Tungsten Fabric知識庫丨更多元件內部探秘元件
- Tungsten Fabric知識庫丨vRouter內部執行探秘VR
- TF功能開發路線圖:盤點2021年Tungsten Fabric聚焦領域
- Tungsten Fabric知識庫丨測試2000個vRouter節點部署VR
- Tungsten Fabric入門寶典丨8個典型故障及排查Tips
- Tungsten Fabric入門寶典丨首次啟動和執行指南
- Tungsten Fabric入門寶典丨關於服務鏈、BGPaaS及其它
- Tungsten Fabric入門寶典丨關於叢集更新的那些事
- Tungsten Fabric入門寶典丨關於安裝的那些事(下)
- Tungsten Fabric入門寶典丨說說L3VPN及EVPN整合
- Tungsten Fabric入門寶典丨開始第二天的工作
- EventBridge 事件匯流排及 EDA 架構解析事件架構
- Tungsten Fabric入門寶典丨關於多叢集和多資料中心
- Tungsten Fabric與K8s整合指南丨建立隔離名稱空間K8S
- Tungsten Fabric解決方案指南-Kubernetes整合
- Tungsten Fabric解決方案指南-Gateway MXGateway
- Fabric架構演變之路架構
- 利用DDP技術提升Tungsten Fabric vRouter效能VR
- 2.03 hyperledger fabric系統架構架構
- OpenStack上海峰會觀感丨Tungsten Fabric在2019開源基礎設施峰會
- Tungsten Fabric知識庫丨關於OpenStack、K8s、CentOS安裝問題的補充K8SCentOS
- Fabric基礎架構原理(4):鏈碼架構
- 最新版本|Tungsten Fabric 5.1要點速覽