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

Tanzu Kubernetes Grid 服務 支援透過變更 VirtualMachineClass 定義來更新叢集。如果您這麼做,服務會推出具有該新類別的新節點,並停止舊節點。請參閱 關於 Tanzu Kubernetes Grid 服務 叢集更新
備註: VirtualMachineClass 必須繫結到已佈建 Tanzu Kubernetes 叢集的 vSphere 命名空間。請參閱 Tanzu Kubernetes 叢集的虛擬機器類別

必要條件

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

程序

  1. 使用 主管叢集 進行驗證。請參閱以 vCenter Single Sign-On 使用者身分連線至 主管叢集
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換到佈建目標 Tanzu Kubernetes 叢集的 vSphere 命名空間
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 說明目標 Tanzu Kubernetes 叢集並檢查虛擬機器類別。
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    例如,此叢集使用的是 best-effort-medium 虛擬機器類別:
    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        Workers:
          Class:          best-effort-medium
          ...
    
  4. 列出並說明命名空間中的可用虛擬機器類別。
    kubectl get virtualmachineclassbindings
    備註: 命令 kubectl get virtualmachineclasses 列出了 主管叢集上存在的所有虛擬機器類別。由於您必須將虛擬機器類別與 vSphere 命名空間相關聯,因此只能使用繫結到目標命名空間的虛擬機器類別。
  5. 執行下列命令以編輯叢集資訊清單。
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. 透過變更 version 字串並取消設定 fullVersion 或將其設為 null 來編輯資訊清單,以避免在探索期間發生潛在的版本不相符問題。
    例如,將叢集資訊清單從對控制平面和 worker 節點使用 best-effort-medium 虛擬機器類別:
    spec:
      topology:
        controlPlane:
          class: best-effort-medium
          ...
        workers:
          class: best-effort-medium
          ...
    
    變更為對控制平面和 worker 節點使用 guaranteed-large 虛擬機器類別:
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        workers:
          class: guaranteed-large
          ...
    
  7. 儲存對資訊清單檔案所做的變更。
    儲存檔案時,kubectl 會將變更套用至叢集。在背景中, Tanzu Kubernetes Grid 服務 會佈建新的節點虛擬機器並停止舊的節點虛擬機器。
  8. 確認 kubectl 是否報告資訊清單編輯已成功記錄。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    備註: 如果您收到錯誤,或 kubectl 未報告叢集資訊清單已成功編輯,請確保您使用 KUBE_EDITOR 環境變數正確設定了預設文字編輯器。請參閱 為 Kubectl 指定預設文字編輯器
  9. 確認叢集是否正在更新。
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   21h   updating
  10. 確認叢集是否已更新。
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   22h   running