可以透過變更用於主控叢集節點的虛擬機器類別來更新工作負載叢集。

可以透過變更 VirtualMachineClass 定義起始 TKG 2.0 叢集的輪流更新。將推出以已變更類別為基礎的新節點,並停用舊節點。

必要條件

此工作需要使用 kubectl edit 命令。此命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。儲存檔案時,將透過變更來更新叢集。若要為 kubectl 設定編輯器,請參閱 為 Kubectl 設定文字編輯器

程序

  1. 使用 主管 進行驗證。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換到佈建目標 TKG 叢集的vSphere 命名空間
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 說明目標 TKG 叢集並檢查虛擬機器類別。
    v1alpha3 叢集:
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    v1beta1 叢集:
    kubectl describe cluster CLUSTER-NAME
  4. 列出並說明命名空間中的可用虛擬機器類別。
    kubectl get virtualmachineclassbindings
    備註: VirtualMachineClass 必須繫結到已佈建 TKG 叢集的 vSphere 命名空間
  5. 執行下列命令以編輯叢集資訊清單。
    v1alpha3 叢集:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    v1beta1 叢集:
    kubectl edit cluster/CLUSTER-NAME
  6. 變更虛擬機器類別字串以編輯資訊清單。
    例如,如果您使用的是 v1alpah3 叢集,請變更對 worker 節點使用 guaranteed-medium 虛擬機器類別的叢集資訊清單:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
    若要對 worker 節點使用 guaranteed-large 虛擬機器類別:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-large
    同樣,如果已佈建 v1beta1 叢集,請將 variables.vmclass 的值更新為目標虛擬機器類別。
  7. 儲存對資訊清單檔案所做的變更。
    儲存檔案時,kubectl 會將變更套用至叢集。在背景中,TKG 控制器會佈建新的節點虛擬機器並停止舊的節點虛擬機器。
  8. 確認 kubectl 是否報告資訊清單編輯已成功記錄。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    備註: 如果您收到錯誤,或 kubectl 未報告叢集資訊清單已成功編輯,請確保您使用 KUBE_EDITOR 環境變數正確設定了預設文字編輯器。請參閱 為 Kubectl 設定文字編輯器
  9. 確認叢集是否已更新。
    v1alpha3 叢集:
    kubectl get tanzukubernetescluster
    v1beta1 叢集:
    kubectl get cluster