2023年5月7日 星期日

整合 NSX ALB 啟用 vSphere with Tanzu (Workload Management)

vSphere with Tanzu (或稱為Tanzu Kubernetes Grid Service,TKGs),它能提供在 vSphere 原生環境中建立及操作 Kubernetes 工作負載(Workloads),並且能運用 vSphere 的功能及特色 (例如:vSphere HA、Content Library、vCenter SSO...等)。對維運管理人員,在單一平台就能管理VM和建構 k8s 叢集;對開發人員而言,能透過原本就熟悉的 Kubectl 來部署 Tanzu Kubernetes Clusters(TKC)。本文將說明如何啟用 Workload Management 並整合 NSX ALB

VMware Tanzu Kubernetes 專有名詞

在讀 VMware Tanzu 相關文件時,發現有幾個很類似的名詞,搞得有點混亂。因此整理了以下幾個專有名詞:


  • VMware Tanzu - Tanzu 是 VMware 現代化應用解決方案的總稱,產品線非常多元且豐富,涵蓋了建構(Build)、運行(Rrun)、管理(Management)三個部分。建構工具以現代化應用為主,涵蓋了傳統應用、開源應用和雲端原生應用;執行工具主要是提供一套可用於內部、公有雲和邊緣環境的企業級 K8s 平台;管理工具的目標則要能跨多雲、多叢集和多團隊,支援開發者和 IT 所需
  • Tanzu Kubernetes Grid(TKG) - TKG 是 VMware 發行的企業級 Kubernetes 平台,可以在多雲環境中部署,為使用者提供一致的 Kubernetes 使用體驗,與原生的 Kubernetes 完全相容。根據部署和管理方式的不同,又分為 Tanzu Kubernetes Grid Service for vSphere(TKGs) 和 Tanzu Kubernetes Grid Multi-cloud(TKGm)
  • Tanzu Kubernetes Grid Service - 通常是指 vSphere with Tanzu,將 vSphere 轉換為 Kubernetes 工作負載的平台(Worker Nodes),並在此平台上部署 vSphere Namespace、Pods 及 Tanzu Kubernetes Cluster(TKC)
  • Tanzu Kubernetes Grid Multi-cloud - 指的是跨雲的部署,支援部署在 vSphere、AWS、Azure 等雲環境
  • TKG 2 - 在 vSphere 8 的環境架構,TKG 2 叢集上可以同時部署 TKGs 或是 TKGm

LAB 架構

  • 當啟用 Workload Management 後,會開始部署三台 Supervisor ControlPlane VMs
  • Supervisor ControlPlane VMs 會有兩張網卡,管理網段會放在 MGMT PG (172.26.93.0/17),Workload 網段會放在 Workload-PG (10.10.151.0/24)
  • Supervisor 叢集 VIP 會在 Frontend-PG (10.10.150.0/24),提供 Guest VM 能連至 Namespaces 並部署 TKC

前置作業

建立內容程式庫(Content Library)

Content Library 會存放 TKG 叢集節點的映像檔,當有新映像檔版本發佈,會更新至公開的內容傳遞網路(Content Delivery Network,CDN)。透過訂閱 CDN,就能自動下載映像檔,以供後續創建 TKC 叢集使用

  • 設定訂閱的 CDN URL 為 https://wp-content.vmware.com/v2/latest/lib.json,選擇立即下載

  • 指定 Content Library 存放在哪個 Storage

  • 設定完成

建立儲存區原則 (Storage Policies)

啟用 Workload Management 之前,需要先建立給 Supervisor Cluster 和 namespaces 使用的 Storage Policies。本例會建立一個 vSAN SNA (Shared-Nothing Architecture) 儲存區原則,啟用 vSAN Storage Rule,並設定 FTT=0

建立 NSX ALB SSL/TLS 憑證

要啟用 Workload Management,必須設定 Supervisor Cluster 的網路堆疊 (NSX-T 或是 vDS)。如果選擇用 vDS,就需要搭配負載平衡來連接 Client 端與 Workloads 之間的網路
  • 登入至 NSX ALB→Template→Security→SSL/TLS Certificates,選擇 Create Controller Certificate
  • 設定憑證 Common Name,在 SAN 的設定加入 NSX ALB 的 IP 和 FQDN
  • 接著,修改 System Access Settings。在Administration→Settings→Access Settings,點選編輯
  • 將 SSL/TLS Certification 更改成新建的憑證
  • 回到 Template→Security→SSL/TLS Certificates 頁面,找到新建的那張憑證,點選 Export 
  • 複製憑證,等等在啟用 Workload Management 會需要用到

啟用 Workload Management

  • 從 vCenter Shortcuts 中點選 Workload Management
  • 進到 Workload Management ,按照設定精靈一步步設定
【STEP 1】選擇要使用哪一種 Network Stack。本例使用的是 vDS,所以會需要搭配負載平衡 (NSX ALB 或是 HA Proxy)
【STEP 2】選擇要部署到哪一個 Cluster
※vSphere 8 的環境支援 vSphere Zone 的部署模式 (將 Supervisor 分散在不同的 Cluster,跨 Cluster 的 HA),本例是選擇 Cluster Deployment

【STEP 3】選擇 VM Storage Policy
【STEP 4】設定與 NSX ALB 連接,這個步驟需要輸入 NSX ALB 登入的帳號密碼以及憑證
【STEP 5】設定 Supervisor VM 的 IP,本例是選擇固定 IP,設定的地方是輸入起始 IP,所以要確認起始 IP 後的連續 IP 沒有使用 (包含起始 IP 共需要保留 5 個 IP)
【STEP 6】設定 Workload 網路,本例是選擇 DHCP
【STEP 7】設定 Content Library
【STEP 8】選擇 Control Plane VM 資源大小,然後點選 FINISH 開始部署 Supervisor Cluster VMs
  • 部署會需要一點時間,可以從介面上看到部署的狀態
  • 部署完成後,管理介面上就可以看到 Control Plane Cluster 的 VIP (10.10.150.3) 以及 Supervisor Cluster 的狀態
  • vCenter 介面會看到部署了三台 Supervisor ControlPlane VMs

建立命名空間 (Namespace)

  • 在 Workload Management→Namespaces→點選 Create Namespace
  • 設定 Namespace 名稱和 Workload 網路 (本例建立一個 Namespace 名為 demolab,workload 網路為 workload-pg)
  • Namespace 建立完成後,管理人員可以針對 Namespace 做資源管控,例如:權限指派、儲存原則、資源利用率限制等。本例會依序設定 Permissions、Storage、VM Service
  • 新增 administrator 為 Owner

  • 勾選  vSAN SNA 儲存原則,Persistent Volume 會建在與此儲存原則關聯的儲存空間 

  • 新增 VM Service。系統預設提供了不同規格的虛擬機器類別,依據環境的資源勾選要提供的 VM 類別

登入 Supervisor Cluster

進到跳板 VM,用瀏覽器連 https://10.10.150.3,下載 Kubernetes CLI Tools 並解壓縮
將 kubernetes CLI Tools 的路徑加入系統環境變數,開啟 CMD 就可以直接執行 kubectl vSphere login 指令
kubectl vsphere login --server=https://10.10.150.3 -u administrator@vsphere.local --insecure-skip-tls-verify
登入 Supervisor Cluster 後,接著就可以在此環境上切換至不同的 Namespaces,並透過 YAML 檔案部署服務

 

沒有留言:

張貼留言