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

前篇網誌內我們簡述以最單純的方式,使用Tanzu Kubernetes Grid準備一個符合NSX Application Platform (NAPP) 需求之K8S叢集的流程。當相關底層構件準備完,接下來就可以由NSX管理介面開始要求進行部署NAPP,也就是下圖內的紅框部分:

在此模式內的安裝流程很單純,以管理者帳戶登入NSX-T管理介面。首先,請確認在授權畫面內,已經輸入了NSX Enterprise Plus,或是NSX Firewall訂閱授權:

接著進入 System – NSX Application Platform畫面內,選擇 “DEPLOY NSX APPLICATION PLATFORM”:

因為這邊我們先用最簡單的方式,也就是透過Internet上VMware的開放容器庫下載NAPP相關image,因此兩個主要的參數需要填入相關地址:

  • Docker Registry:
    projects.registry.vmware.com/nsx_application_platform/clustering

其他包含版本與Chart Name無需更動,如下圖:

接著下一個畫面如下圖。首先我們需要匯入對應 TKC這個Kubernete Cluster的context配置檔。前面配置TKC時,大家應該已經透過 # tanzu cluster kubeconfig get <tkc-name> –admin 這個指令取得kubeconfig組態了。請到bastion內找 ~/.kube/config 檔案,複製一份匯出到瀏覽器環境後,按 UPLOAD 匯入。

接著NSX這邊會偵測到這個TKC是1.21版,但是NSX 3.2內建的Kubenetes Tools僅有1.18版,版差太大不相容。請匯入由VMware Downloads內下載的kubernetes-tools-1.20.11-00_3.5.4-1.tar.gz 套件檔,更新工具至1.20版。

Kubernetes Tools更新完成後繼續相關配置如下圖,簡單說明如下:

  • Cluster Type:請留空,目前只能採用預設的Standard模式
  • Storage Class:選擇預設的default Storage Class即可,Tanzu Kubernetes Grid部署於vSphere/vSAN環境時,自動配置csi.vsphere.vmware.com及對應storage class將需求之persistent volume放置於vSAN內
  • Service Name:配置NAPP平台對外服務的FQDN名稱。這個名稱(這邊的範例是napp.tkgm.sysage.com)應該要在NSX ALB的DNS profile管理的網域內(這裏是tkgm.sysage.com)。用戶後續在進行名稱解析時,這個Service Name要可以對應到NAPP內contour服務對應的對外Load Balancer IP
  • Form Factor:選擇Advanced以後續配置完整功能

再下一步內進行Pre-check,請按RUN PRECHECK按鈕,確認 Status 內每個均為綠色勾顯示 Completed。若有錯誤,依據後方說明進行調整。

在少數情況下,RUN PRECHECKS 步驟會於跑了幾項後停止執行。此時重新再執行一次即可。

最後檢查組態,確認沒問題後即可開始執行。

順利的話會逐步執行到安裝完成,但目前以NSX ALB做負載平衡器時有個小bug大家可能會碰到,大約執行到40%左右,NSX上會出現類似錯誤訊息:

此時的解決方式是到NSX ALB介面內,檢查Pool這邊的配置,應該會看到有兩個Pool:projectcoutour-envoy–443 及 projectcoutour-envoy–80 這兩個 Pool 之健康狀態為紅色。

請手動編輯這兩個Pool,將Health Monitors由System-TCP改為System-Ping,然後過一下就會看到Pool變回黃/綠色,再去NSX畫面內按Retry繼續執行就可以了(後續要再改回System-TCP也沒問題)。

等全部步驟走完,在NSX介面內可以看到NSX Application Platform部署完成,並顯示相關節點的資訊:

此時平台部署完成,在畫面下方,就可以繼續相關功能包含Intelligence / NDR / Malware Prevention等等的啟用了(Metrics功能預設即會啟動)

多說幾句。如果大家熟悉Kubernetes的話可以在bastion host上用kubectl指令看一下NSX Application Platform部署完,在TKC內配置了哪些pod / services / persistent volume等等相關資訊,比如說如下圖。基本上NAPP會在Kubernetes叢集內配置三個namespace:

  • cert-manager:配置Cert Manager相關構件,進行內部構件間憑證相關管理
  • projectcontour:配置Contour / envoy相關構件,作為內部各構件對外七層reverse-proxy服務使用
  • nsxi-platform:配置NAPP平台核心底層服務包含像是druid, fluentd, kafka, minio, postgresql, redis, zookeeper等等。而各個NAPP上層服務如metrics / intelligences / NTA等等也會運作在這個namespace內

本篇先停止在這。如果大家可以如這兩篇網誌介紹,以最簡單的架構一方式透過Internet直接由VMware repository進行安裝,是最理想的狀況。但就有些環境,因為各種限制,只能建內部Harbor而且必須用自建CA簽署憑證。很麻煩,下篇網誌內我會和大家說明需要配置的相關步驟。