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

接續前兩篇網誌。前面我們說明了三種AKO (Avi Kubernetes Operator) 配置在不同Kubernetes環境的網路架構,討論的都是Pod所在的網路是沒有暴露給外部 (non-routable) 的環境。但在某些Kubernetes環境內,Pod網路是可以直接與外部網路連通的。

4. Pod放置的網段與企業網路間可路由:

下圖內,Pod所在的網段直接就是企業網路可以連到的環境,外部用戶 / Avi 服務引擎直接就可以透過標準路由機制連接到Pod:

這種環境常見嗎?也是有的。比如說幾種不同的場合:

  • Container Network Interface本身支援以路由模式讓Pod Network與外部連通,比如說像Macvlan,Calico的BGP路由模式,或是NSX Container Plugin (NCP) 內的路由模式。如果企業自建Kubernetes,且選擇配置對應的CNI,就能支持上述方法
  • 某些公有雲的Managed Kubernetes。比如說AWS的EKS,Azure的AKS等,當客戶租用這些環境且要搭配NSX Advanced Load Balancer時,這些環境內的Pod都是在VPC內可直接路由接到的。此時當我們部署AKO在這些地方就可以直接採用路由模式。

當配置是路由模式如上圖時,服務引擎可以直接連到每個Pod, Server Pool的配置就十分直接了,不需要特別處理

Server1 — Pod-A: 10.101.101.13                
Server2 — Pod-B: 10.101.101.22                
Server3 — Pod-C: 10.101.101.17                
Server4 — Pod-D: 10.101.101.36

此時當然用戶需求的應用遞送需求功能如健康檢查、連線堅持等在此架構內也可以完整使用。

包含本篇,我們總共花了三篇文章與各位討論AKO在不同Kubernetes環境內的網路部署方式共四種:

  • Pod放置的網段與企業網路間沒有外部路由:採用ClusterIP模式
  • Pod放置的網段與企業網路間沒有外部路由:採用NodePort模式
  • Pod放置的網段與企業網路間沒有外部路由:採用NodePortLocal模式
  • Pod放置的網段與企業網路間可路由:Routable模式

之所以花這麼多篇幅,是因為這邊的選擇在AKO基礎建置時相當重要,要將AKO應用於不同的Kubernetes環境,事先就要確認這些環境內支持哪種部署方式,並且在AKO相關配置安裝檔內進行對應的設定。比如說如果我們要設定的是ClusterIP模式,此時

  • AKOSettings.disableStaticRouteSync: false          
  • L7Settings.serviceType: clusterIP

但如果我們要設定的是Routable模式,此時就是要將配置改為下面這樣了。

  • AKOSettings.disableStaticRouteSync: true           

相關的細節可參考安裝文件。但下面我們簡要說明這四個架構各自的應用場景。首先,在Kubernetes是自建、由公有雲管理、或是特定的Kubernetes Distribution內,可採用那種AKO部署架構呢?請參考下表:

或我們可以由下面的流程圖來決定採用配置架構:

以上,希望大家對AKO與不同Kubernetes環境的網路配置選擇有所了解。下一篇開始我想介紹另一個重要的規劃環節:AKO架構內,LoadBalancer / Ingress的前端IP地址配置,以及與IPAM/DNS的環境整合。