NSX Kubernetes 軟體定義網路 容器 網路安全

詳解NSX整合Antrea運作架構 預裝配置完成部署準備

VMware主力K8s構件 細說Antrea容器網路(三)

2023-10-24
前文說明了Kubernetes內傳統的Network Policies運作限制,並示範採用NSX搭配Antrea時如何在UI管理介面中進行群組、安全政策的配置並收集日誌。本文將回到技術層面,說明Antrea + NSX的運作架構,並詳細說明流程一,預先安裝NSX、Kubernetes Cluster、下載對應NSX Agent配置檔等相關事項。

前篇文章與大家討論並展示了使用Antrea搭配NSX Manager來提供便利且企業等級的容器網路安全機制,以及與原生Kubernetes Network Policies的運作方式比較。採用Antrea搭配NSX Manager是VMware在各個不同企業客戶介紹容器方案時的主打功能之一,也受到很多客戶青睞希望在生產環境內進行部署。因此,接下來兩篇文章將把重點放在如何進行Antrea與NSX Manager的連結整合流程。但在詳細進入流程討論前,先說明Antrea與NSX Manager的方案架構。

圖1是在Kubernetes Cluster內運用Antrea作為Container Network Interface元件,並且與NSX Manager進行整合的架構。

圖1  在Kubernetes Cluster內運用Antrea作為Container Network Interface元件,並且與NSX Manager進行整合。

重要構建說明

接下來,討論相關重點構件。

Antrea構件

與之前討論Antrea本身的架構相同,在每個Kubernetes Nodes內都會有一個Antrea Pod來負責:

‧接收來自Kubernetes API Server的指示,編寫相關的網路與安全需求,如Pod之間的網路連接。

‧由Antrea Controller端接收Antrea Network Policy的要求,提供Pod上的安全策略。

‧透過本機上的Open vSwitch來實現上述功能。

而在Kubernetes Cluster中,於Master Nodes內也會部署一個Antrea Controller Pod,這個Controller Pod是Antrea的安全控制端,負責與K8s API Server那邊抓取K8s Inventories的相關資訊,並取得對應Antrea Network Policy的CRD(Customized Resource Definition)要求。

上述構件都與之前描述標準Antrea方案一模一樣,唯一要注意的是,Antrea至少必須採用1.2.3的社群版本,或1.3.1-1.2.3的商用版本,才會支援與NSX整合的功能,這是在使用此功能前需要特別注意的。圖2是VMware Container Networking with Antrea 1.3.1-1.2.3的Release Note(https://docs.vmware.com/en/VMware-Container-Networking-with-Antrea/1.3.1/rn/VMware-Container-Networking-with-Antrea-Version-131-123-Release-Notes.html),裡面標注方框部分就是對於NSX整合新功能的描述。

圖2  對於NSX整合新功能的描述。

Antrea NSX Adapter

在進行NSX整合時,Kubernetes Cluster內會配置一個獨立的Pod,在圖1的架構圖內叫做Antrea NSX Adapter。這個Pod一方面負責與Kubernetes內的API Server以及Antrea Controller Pod通訊,包含抓取Kubernetes相關Inventory資訊,以及送出從NSX取得的群組與防火牆政策配置。另一方面,則是與NSX Manager進行連接,提供上述的資訊。

在做完Antrea + NSX整合後,如圖3所示,Kubernetes Cluster內會出現一個開頭為interworking的Pod,就是這裡討論的Antrea NSX Adapter。

圖3  Kubernetes Cluster內會出現一個開頭為interworking的Pod。

單純安裝Antrea作為K8s Cluster CNI時,不會有上面這個Pod出現,只有在進行NSX整合時才需要。在後面討論Antrea+NSX的安裝步驟時會看到相關的配置流程。

NSX Manager

這裡的NSX Manager就是一般熟悉的VMware NSX內的Manager構件,可以是一台或三台做叢集均可。這邊就是真正透過UI介面進行群組配置以及防火牆政策的地方。請留意以下幾個重點:

‧NSX Manager作為管理∕控制層來使用,不是資料∕轉發層。在此架構內,透過NSX Manager的UI介面進行安全政策配置以及查詢Kubernetes Inventory資訊,但是真正的防火牆實現是由Antrea呼叫OVS來進行。

‧因此,在此架構中,NSX僅僅作為管理∕控制層。不需要連接vSphere做Transport Node Preparation,不需要建TEP介面啟用Overlay網路。若想要用同一組NSX Manager同時管理SDDC虛機環境與Kubernetes環境當然沒問題,但單純討論Antrea + NSX的整合時,NSX就只需要安裝Manager而已。

‧也因為所有「真正的功能」都是在Antrea內透過OVS實現,因此Antrea + NSX這個安全方案能夠或不能夠做到什麼,重點其實是在Antrea內有沒有開發出此功能,而不是NSX本身有沒有支援。例如,需要Pod之間不僅有L4防火牆,還想要L7的檢查功能、IDPS方案的整合等等。在方案架構內,這些功能會需要在Antrea端先做出來,然後才是於NSX Manager端來提供管理的介面。

這裡再補充一下,在前面討論到Antrea+NSX可以提供較傳統Network Policies更完善的功能,架構上其實要分成兩部分:

‧NSX Manager是管理層,提供簡易使用與維運的UI介面。

‧Antrea在轉發層實作比傳統Network Policies更強的安全策略功能。在Antrea中,這個功能是透過CRD(Customized Resource Definition)來實現,叫做Antrea Network Policy(https://antrea.io/docs/main/docs/antrea-network-policy/)。透過這個強化的CRD構件,Antrea可以提供日誌、基於Tier的防火牆配置順序、設定明確的Deny規則等等。

因此,整個內部作業流程是管理者在NSX UI內進行了需求的群組及規則配置,在Kubernetes Cluster內的Antrea NSX Adapter Pod取得這些配置要求,送給Antrea Controller後交給每個K8s Node裡面的Antrea Agent,編寫Open vSwitch來實現防火牆配置,大概是這樣。

接下來,就更仔細地與大家介紹將Antrea與NSX Manager整合的手動安裝流程。大致上,整個流程可以用圖4來表示。

圖4  Antrea與NSX Manager整合的手動安裝流程。

這兩篇文章會一個一個流程細部逐步與大家進行討論,希望在這邊的介紹完成後,大家有興趣的話也能在自己的Lab裡面按圖施工,完成需要進行的作業。這裡的安裝方式主要基於官方文件(https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/administration/GUID-DFD8033B-22E2-4D7A-BD58-F68814ECDEB1.html , " Registering an Antrea Container Cluster to NSX-T Data Center")進行說明,有興趣也歡迎參考。

流程一:先將NSX/Kubernetes with Antrea安裝完成

基本上,無論是採用原生Kubernetes、Tanzu Kubernetes Grid或vSphere with Tanzu,整合NSX Manager的手動安裝方式都一模一樣。在進行相關的註冊作業前,應該需要完成以下步驟:

1. 完成NSX Manager安裝,並輸入需求的授權碼。此方案內NSX構件只需要Manager就好,不需要去連接vCenter,不需要在vSphere上做Transport Node Preparation、建立Overlay這些事情。只要將Manager本體安裝完成即可。

2. 完成Kubernetes Cluster安裝,採用Antrea作為底層的Container Network Interface。

3. 下載正確版本的NSX與Antrea整合配置檔。

第1個步驟相信熟悉NSX方案的讀者都應該相當清楚,細節就不多談。唯一多說一句就是記得要用3.2之後的最新版本。3.1以前的NSX是沒有支援Antrea整合功能的。

第2個步驟的重點在於採用哪種Kubernetes方案架構,各自有部署新的Kubernetes Cluster的方法。舉例來說,當採用vSphere with Tanzu時,在Supervisor Cluster都安裝完成後,就可以手動撰寫一個TanzuKubernetesCluster的YAML檔案,並配置需求的Master Node/Worker Node數量、Storage Class、選擇CNI要採用Antrea、配置Pod CIDR等等,細節請參考相關的產品文件,或與VMware技術人員詢問。

但這邊有一個重點:Antrea在社群版本1.2.3之後才有支援NSX整合的功能。如果安裝的Kubernetes Cluster是原生方案,那Antrea當然是使用社群或是VMware企業支援的最新版本。但在使用Tanzu Kubernetes Grid或是vSphere with Tanzu時,Antrea不用手動安裝,因為在Tanzu Kubernetes Cluster建立時就已經配置在內了。此時,「務必確認TKC使用的Antrea版本是有支援NSX整合的版本」。

這邊先直接講結論:

‧在使用Tanzu Kubernetes Grid時,需要採用1.5以上的版本。建立的TKC必須是1.22之後,才會配置支援NSX整合的Antrea版本。

‧在使用vSphere with Tanzu時,建議採用最新的vCenter,建立的TKC必須是1.22之後,才會配置支援NSX整合的Antrea版本。

這裡很重要。通常整合失敗接不起來,這裡就是第一個犯錯的地方。要確認Tanzu內Antrea的版本,一個最直接的方式就是去看Antrea Controller的描述檔,可用kubectl describe指令去看Antrea Controller的Pod。

圖5所示的描述檔是使用vSphere with Tanzu,TKC採用1.21.6的Kubernetes,此時可以看到安裝的Antrea版本,社群編號是0.13.5,這對應到的是VMware Container Networking with Antrea的1.2.0-0.13.1企業版本,還沒有支援NSX整合。

圖5  檢視描述檔內容,尚未支援NSX整合。

圖6所示是另外一個1.22.9版的TKC,安裝的Antrea版本顯示為社群1.2.3,對應企業版本為1.3.1-1.2.3,這就是有NSX支援的版本了。

圖6  檢視1.22.9版的TKC,這是有NSX支援的版本。

重點再度強調一下:Tanzu方案內,要1.22之後的TKC內使用的Antrea構件,才有支援NSX整合功能,1.21版以前的沒有。

本流程內的最後一個步驟是,要下載對應的NSX Agent配置檔。這裡的配置檔務必要抓與TKC內安裝Antrea同個商業版本的配置檔。以上面的TKC 1.22.9、Antrea商業版本是v1.3.1-1.2.3為例,下載的流程首先是到VMware All Download內找VMware Antrea,然後找對應的版本,如圖7所示。

圖7  到VMware All Download內找VMware Antrea,然後找對應的版本。

然後,在VMware Container Networking with Antrea 1.3.1-1.2.3內,尋找NSX Interworking connector and deployment manifests這個檔案,如圖8所示。

圖8  尋找NSX Interworking connector and deployment manifests檔案。

上面的檔案下載後解壓縮,裡面的interworking.yaml、bootstrap-config.yaml、deregisterjob.yaml就是後續在流程四與流程五內要修改與部署的配置檔案。

結語

本篇先與大家介紹NSX整合Antrea的方案架構,並詳細說明在流程一中,包含預先安裝NSX、Kubernetes Cluster、下載對應NSX Agent配置檔的相關事項,在真正進行Antrea-NSX註冊作業前需要預先準備好,下篇文章將會繼續與大家討論後續的五個流程。

<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、軟體定義網路、微分段安全防護技術,以及新應用遞送方案的介紹與推廣。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!