遵循此工作流程使用 kubectl 命令和 YAML 中定義的叢集規格以宣告方式佈建 TKG 叢集。

此工作流程支援使用 kubectl 和 YAML 以宣告方式佈建 TKG 叢集。

必要條件

在開始佈建工作流程之前,請確認滿足或完成以下必要條件:

程序

  1. 安裝 vSphere 適用的 Kubernetes CLI 工具
  2. 使用 kubectl 對主管進行驗證。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  3. 驗證是否成功登入主管
    您應該會看到類似下列內容的訊息:
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkg2-cluster-namespace
    其中, 192.197.2.65主管環境, tkg2-cluster-namespace 是計劃佈建 TKG 叢集的 vSphere 命名空間的環境。
  4. 驗證目標 vSphere 命名空間是否為目前環境。
    kubectl config get-contexts
    CURRENT   NAME                    CLUSTER         AUTHINFO                                        NAMESPACE
              192.197.2.65            192.197.2.65    wcp:10.197.154.65:administrator@vsphere.local
    *         tkg2-cluster-namespace  10.197.154.65   wcp:10.197.154.65:administrator@vsphere.local   tkg2-cluster-namespace
    
    如果目標 vSphere 命名空間不是目前環境,請切換到該目標命名空間。
    kubectl config use-context tkg2-cluster-namespace
  5. 列出目標 vSphere 命名空間中可用的虛擬機器類別繫結。
    kubectl get virtualmachineclassbindings
    您只能使用已繫結到目標命名空間的虛擬機器類別。如果看不到任何虛擬機器類別,請檢查 vSphere 命名空間中是否新增了預設虛擬機器類別。
  6. 取得可用的持續性磁碟區儲存區類別。
    kubectl describe namespace VSPHERE-NAMESPACE-NAME
    命令將傳回有關命名空間的詳細資料,包括採用格式 tkg2-storage-policy.storageclass.storage.k8s.io/requests.storage 的儲存區類別。字串的第一個 Token 是儲存區類別名稱,在本範例中為 tkg2-storage-policy。命令 kubectl describe storageclasses 還會傳回可用的儲存區類別,但需要 vSphere 管理員權限。
  7. 列出可用的 Tanzu Kubernetes 版本
    您可以使用以下任一命令執行此操作:
    kubectl get tkr
    kubectl get tanzukubernetesreleases
    此命令將傳回可供您在此 vSphere 命名空間中使用的 TKR,並顯示它們與要部署到的 主管的相容性。只能使用此命令傳回的版本。如果沒有看到任何版本或所需版本,請確認您已完成以下作業:a) 已建立 TKR 內容程式庫;b) 已將內容程式庫與所需 OVA 檔案同步;c) 已將內容程式庫與將要佈建 TKG 叢集的 vSphere 命名空間相關聯。
  8. 編寫用於佈建 TKG 叢集的 YAML 檔案。
    1. 確定將建立的叢集類型並檢閱其 API 和功能:
    2. 從用於佈建叢集的範例 YAML 之一開始。
    3. 將 YAML 檔案儲存為 tkg2-cluster-1.yaml 或類似格式。
    4. 使用從上述命令輸出中收集的資訊填入 YAML,包括:
      • 叢集的名稱,例如 tkg2-cluster-1
      • 目標 vSphere 命名空間
      • 繫結的虛擬機器類別,例如 guaranteed-medium
      • 叢集節點和持續性磁碟區的儲存區類別
      • 控制平面和 worker 節點 (複本) 數
      • TKR NAME 字串指定的 Tanzu Kubernetes 版本,例如 v1.25.7+vmware.3-fips.1-tkg.1
    5. 根據需要自訂 TGK 叢集 YAML。
      • 為頻繁變換的元件 (例如 containerd) 新增單獨的磁碟區
      • 為叢集節點和持續性磁碟區指定預設持續性儲存區類別
      • 自訂叢集網路,包括 CNI、網繭和服務 CIDR
    6. 使用 YAML 語法檢查程式並驗證 YAML 是否有效。
    完成此步驟後,將產生用於佈建 TKG 叢集的有效 YAML。
  9. 透過執行下列命令來佈建 TKG 叢集。
    kubectl apply -f tkg2-cluster-1.yaml
    預期的結果:
    tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
  10. 監控 TKG 叢集的佈建。
    kubectl get tanzukubernetesclusters
    kubectl get tkc
    其中,如果使用 v1beta1 API 建立叢集,請執行以下作業:
    kubectl get cluster
    一開始,READY 狀態為 False,因為正在佈建叢集。幾分鐘後,該狀態應為 True。
    NAME              CONTROL PLANE   WORKER   TKR NAME                            AGE   READY   TKR COMPATIBLE   UPDATES AVAILABLE
    tkg2-cluster-1    3               6        v1.25.7+vmware.3-fips.1-tkg.1       49m   True    True
    執行其他命令,以檢視有關叢集的詳細資料。
    kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
    kubectl describe tanzukubernetescluster tkg2-cluster-1
  11. 使用 vSphere Client 監控叢集節點部署。
    在 vSphere 的 主機和叢集詳細目錄中,您應該會看到叢集節點虛擬機器正在目標 vSphere 命名空間中部署。
  12. 所有 TKG 叢集節點都處於就緒狀態後,使用 kubectl 適用的 vSphere 外掛程式 登入此叢集。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME \
    --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
    例如:
    kubectl vsphere login --server=192.197.2.65 --vsphere-username user@vsphere.local \
    --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
    備註: 只有在控制平面節點正在執行且驗證服務外掛程式已啟動後,此登入命令才會成功。如果 worker 節點正在建立過程中,則登入可能會不穩定。建議在所有叢集節點都處於就緒狀態後再登入。
  13. 將內容切換為 TKG 叢集,使其成為目前內容。
    成功登入 TKG 叢集後,您應該會看到類似以下內容的訊息。
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkg2-cluster-namespace
       tkg2-cluster-1
    其中, 192.197.2.65主管內容, tkg2-cluster-namespacevSphere 命名空間內容, tkg2-cluster-1 是 TKG 叢集內容。
    切換為 TKG 叢集內容。
    kubect config use-context tkg2-cluster-1
  14. 檢查 TKG 叢集資源。
    kubectl get nodes
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  15. 透過部署測試網繭來執行 TKG 叢集作業,並驗證其是否按預期般運作。