作者: 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簽署憑證。很麻煩,下篇網誌內我會和大家說明需要配置的相關步驟。
Comments
0 Comments have been added so far