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

接續前篇,這篇網誌內我想簡單與大家討論Antrea作為VMware主要支持的Container Network Interface,相關的構件以及與其他競爭方案的差異。近幾年隨著Kubernetes的技術發展,Container Network Interface這邊的相關專案也百花齊放,從早期的Flannel / Weave / OVN到目前主流的Calico / Cilium,包含VMware本身NSBU之前也在NSX開發了NCP (NSX Container Platform),各有各的特長。那目前VMware / Tanzu在商用支持上主要採用Antrea,是因為Antrea有哪些優勢呢?這篇想要很簡單的與大家說明。

首先我們看一下Antrea的架構,幾個重點分別討論:

Antrea採用 Open-vSwitch作為核心網路構件

上面架構圖內大家可以看到每個Kubernetes Node內都有大大的OVS (Open-vSwitch) 三個字,這是Antrea與其他方案最主要的差別:Antrea使用Open vSwitch做為底層的核心構件。Open vSwitch是一個開發長久、穩定、可程式化的開源方案,具有下列特性

  • 方案成熟,Open vSwitch早在NSX前身Nicira時代就完整商用化,目前也已經是Linux Kernel的內建模組。
  • 作為開源SDN (Software Define Network) 的核心構件,開發者可以很輕易地透過Open vSwitch (藉由OVSDB / Openflow) 啟用多種企業需要的安全及網路功能,遠多於原生Kubernetes基礎定義的需求。
  • 可以運作在Linux及Windows作業系統,因此具備完整可攜性。在客戶要將Kubernetes Cluster部署於不同公私有雲,不同作業系統上時,Antrea均能輕易支援。

Antrea具備 controller-agent 的控制 / 轉發設計

同樣在上圖,大家可以看到每個Kubernetes Node內都有一個Antrea Agent。這個Antrea Agent主要的工作是接收來自Kubernetes API Server以及Antrea Controller的指示,編寫相關的網路與安全需求,再透過本地OVS來進行功能實現,比如說Pod與Pod間要透過Geneve Tunnel進行跨node網路連線,每個Pod本身的Network Policy等等。

此外,由於Antrea的一個重要功能是進行各個Pod間的進階安全控制,此時需要一個構件能夠

  • 透過Kubernetes API收集Pod / Namespace / Service之狀態。
  • 提供API讓外部系統可呼叫來配置進階安全策略。
  • 於此構件將進階安全策略配送到需求Kubernetes Node上的Antrea Agent,呼叫各自的OVS 進行安全政策實現。

因此在Antrea部署時,除了每個K8S node上都會有Antrea Agent外,還會於Master Nodes上安裝一個Controller Pod。下圖是我在Lab內建置,具有一個Master Node,三個Worker Nodes的Kubernetes Cluster。可以看到當Antrea安裝完成,每個Node上面都有一個Antrea Agent (共四個),除此之外還有一個antrea-controller pod配置,負責上述討論的提供進階的安全控制與外部系統接取功能。

如果大家對細部的Antrea / Kubernetes構件間關係有興趣,可以參考下列這張圖,包含了Antrea各構件、Kubernetes各構件、甚至包含到外部系統間的完整關聯:

架構面先簡單談到這邊,如果大家對相關細節想進一步了解,可以參考下列文章 ( https://antrea.io/docs/v1.8.0/docs/design/architecture/ ) 有詳盡討論。這裡特別花一篇網誌來特別討論架構,主要想要強調下面這幾點:

  • 透過採用Open vSwitch成熟技術作為核心骨幹,Antrea能夠容易地做到跨作業系統、甚至在不同公私有雲平台的快速支持。
  • 同時,由於之前在Open vSwitch上已經累積的大量經驗,Antrea專案能夠快速地應用Open vSwitch本身已支持的功能,呼應企業需求,在短期內就能夠透過Open vSwitch現有機制將新功能實現出來。
  • 藉由Antrea Controller的設計,能夠實作出較傳統Network Policy遠為複雜的安全政策機制,同時也能夠很簡單地提供外部系統(如後面我們要討論的NSX,或整合另一個著名的開源維運工具OCTANT)來進行政策配置與資訊查找。

雖然不同的Container Network Interface方案各有千秋,但Antrea具備上述談到的特性包含構件成熟且功能完整、易於開發、易於整合外部系統的特性,也就成為了VMware支持容器方案的首選。尤其VMware本身在之前維護Open vSwitch開源專案上原本就有投資大量的開發團隊與相關經驗,繼續進行Antrea的開發與維護也是水到渠成的。

先談到這邊,下篇我想簡單和大家討論Antrea的安裝方式。