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

前篇網誌內討論了要部署NSX Application Platform (NAPP) 時,架構內三種不同容器庫配置的選擇,裡面最簡單的是第一種模式:不建置私有容器庫,直接從VMware在Internet上的開放容器庫拉取NAPP相關image。此時相關架構如下:

在此模式內的安裝流程很單純,顯示如下:

vCenter / vSphere / NSX-T / NSX-ALB 基礎環境建立完成

這邊是大家都熟悉的架構與安裝流程,就不多談了

Bastion管理機建立

這個Bastion管理機可以提供下列各項功能:

  • 執行tanzu相關指令,配置TKG Management Cluster以及Tanzu Kubernetes Cluster。
  • 執行kubectl相關指令,進行TKC的管理與應用安裝
  • 可以作為docker client,比如說在有Harbor的情況下可以連接進行image管理
  • TKG環境建立時需要有DHCP服務存在,大家當然可以另外找台DHCP Server或用NSX-T去做一個,但最簡單的方式就是直接在Bastion上啟用服務即可。

最簡單的方式大家可以配置一台至少2 vCPU,8 GB以上Memory的虛機安裝Ubuntu 20.04,有兩個網卡一隻腳接到管理網段(管理使用)及另一隻腳接到Workload網段(提供Workload網段DHCP)。我想大家對安裝Ubuntu等都很熟悉就不贅述了,幾個參考文件:

  • Ubuntu內提供DHCP相關服務:https://www.server-world.info/en/note?os=Ubuntu_20.04&p=dhcp&f=1
  • Ubuntu內安裝tanzu command line及相關工具:https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/1.5/vmware-tanzu-kubernetes-grid-15/GUID-install-cli.html

Tanzu Kubernetes Grid管理叢集建立

因為我們是個網路部落格不是Tanzu / Kubernetes部落格,就不多談細節啦。我自己lab環境內用的是Tanzu Kubernetes Grid 1.5.1版,可以透過一個很簡單的UI直接進行Management Cluster部署,大家可以參考下列文件:

  • https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/1.5/vmware-tanzu-kubernetes-grid-15/GUID-mgmt-clusters-deploy-ui.html

另外多說一句,在配置Management Cluster時可以選擇用原生的kube-vip或是用NSX ALB來做K8S API管理構件前端的負載平衡。兩種都OK,單純以簡單為考慮的話,用kube-vip就可以了啦。

Tanzu Kubernetes Cluster部署

同樣的,大家可以參考官方安裝文件,說明如何配置出一個Tanzu Kubernetes Cluster: https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/1.5/vmware-tanzu-kubernetes-grid-15/GUID-tanzu-k8s-clusters-index.html

這邊有三個事情對應到NSX Application Platform部署,特別提出討論一下:

  • NAPP使用的worker node至少要三個,每個的vCPU至少16,Memory至少64 GB。這代表在大家部署TKC的配置檔內,下列的參數要特別注意:

CLUSTER_PLAN: prod

VSPHERE_WORKER_MEM_MIB: “65536”

VSPHERE_WORKER_NUM_CPUS: “16”

WORKER_MACHINE_COUNT: 4

VSPHERE_WORKER_DISK_GIB沒那麼重要,用預設值也可,因為主要NAPP的空間我們會要透過CSI向vSAN調用,如下敘述

  • NAPP要求每有一個Worker Node,平台需要有1 TB的儲存空間,也就是至少要3 TB。同時對應此Storage Class的儲存空間應該要能支持動態擴充功能。這個需求沒問題,用TKC建立時預先配置的default Storage Class即可,目前 Tanzu Kubernetes Grid部署在vSphere環境時,就已經支持透過csi.vsphere.vmware.com來直接調用vSAN Storage了,不需要特別配置。
  • NAPP在寫作目前的3.2版本最高僅支持到Kubernetes 1.21版,但Tanzu Kubernetes Grid 1.5.1支持的最高 / 預設版本為1.22.5。因此在進行TKC部署時需要特別降版。比如說在下面的部署指令內,–tkr v1.21.8—vmware.1-tkg.4 就是要求必須部署的是1.21.8版本的TKC

    # tanzu cluster create –file 20220307-tkgm-napp-tkc01.yaml -v 6 –tkr v1.21.8—vmware.1-tkg.4

Tanzu Kubernetes Cluster內安裝AKO,提供負載平衡服務

前面網誌介紹AKO的相關文章應該有和大家討論,可以參考 https://avinetworks.com/docs/ako/1.6/ako-installation/ 的步驟進行安裝。大家可能會好奇為什麼要獨立安裝AKO,而不用Tanzu Kubernetes Grid內透過搭配AKO-Operator的自動安裝方式(就是在TKC配置檔內直接把AKO相關參數填進去)。當然是可以的,但以我個人的習慣比較熟悉手動配置的方式,除了配置選擇較為彈性,而且可以使用AKO的最新版本,不會受限於TKG的版本套裝。這邊就大家覺得好用的方式進行即可

簡而言之前面講這麼多,就是把一個符合NAPP安裝要求的Kubernetes Cluster建立起來。那限於篇幅先寫到這邊。那Kubernetes Cluster建好了,下篇網誌內,我們用抓圖的方式走一遍 NSX Application Platform的安裝給大家看。