作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

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

下面這張圖是在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整合的功能,這是大家需要特別在使用此功能前注意的。下圖是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整合新功能的描述。

Antrea NSX Adapter

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

下圖內大家看到在做完Antrea + NSX整合後,Kubernetes Cluster內會出現一個開頭是interworking的這個pod,就是我們這邊討論的Antrea NSX Adapter。

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

NSX Manager

這裡的NSX Manager就是我們熟悉的NSX Data Center內的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的安裝步驟。