可以透過變更用於主控叢集節點的虛擬機器類別來更新 TKG 服務叢集。

可以透過使用 kubectl edit 命令編輯 vmClass 定義來起始 TKG 服務叢集的輪流更新。將推出以已變更類別為基礎的新節點,並停用舊節點。
備註: 無法使用 kubectl apply 命令更新已部署的 TKG 叢集。

必要條件

此工作需要使用 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. 列出並說明佈建叢集的 vSphere 命名空間 中的可用虛擬機器類別。
    kubectl get virtualmachineclass
    備註: 目標虛擬機器類別必須與佈建 TKG 叢集的 vSphere 命名空間 相關聯。如需有關將虛擬機器類別繫結到 vSphere 命名空間 的詳細資訊,請參閱 TKG 服務或虛擬機器服務說明文件。
  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.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
    若要對 worker 節點使用 guaranteed-large 虛擬機器類別:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          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