可以透過變更節點數目水平調整 Tanzu Kubernetes 叢集,或透過變更主控節點的虛擬機器類別垂直調整該叢集。

支援的調整作業

下表列出了支援的 Tanzu Kubernetes 叢集調整作業。
表 1. 支援的 Tanzu Kubernetes 叢集調整作業
節點 水平擴充 水平縮小 垂直調整
控制平面
Worker
請謹記以下考量事項:
  • 垂直調整叢集節點時,由於缺少可用資源,工作負載可能已無法在節點上執行。因此,水平調整可能是慣用方法。
  • 虛擬機器類別是不可變的。如果在編輯 Tanzu Kubernetes 叢集所使用的虛擬機器類別後對該叢集進行擴充,則新的叢集節點會使用更新的類別定義,但現有叢集節點會繼續使用初始類別定義,從而造成不相符情況。請參閱Tanzu Kubernetes 叢集的虛擬機器類別

調整必要條件:設定 Kubectl 編輯

若要縮放 Tanzu Kubernetes 叢集,請使用命令 kubectl edit tanzukubernetescluster/CLUSTER-NAME 更新叢集資訊清單。kubectl edit 命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。如需設定環境變數的相關指示,請參閱為 Kubectl 指定預設文字編輯器

儲存資訊清單變更時, kubectl 報告已成功記錄編輯,並且將透過變更來更新叢集。
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
若要取消,只需關閉編輯器而無需儲存。
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

擴充控制平面

可以透過將控制平面節點數目從 1 個增加到 3 個來擴充 Tanzu Kubernetes 叢集。控制平面節點數目必須為奇數。您無法縮小控制平面。
  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 列出命名空間中正在執行的 Kubernetes 叢集。
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 取得目標叢集中正在執行的節點數目。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    例如,以下叢集具有 1 個控制平面節點和 3 個 worker 節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      1               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. 載入叢集資訊清單,以使用 kubectl edit 命令進行編輯。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。

  6. 找到 spec.topology.controlPlane.count 參數,並將節點數目從 1 個增加到 3 個。
    ...
    controlPlane:
        count: 1
    ...
    
    ...
    ControlPlane:
        count: 3
    ...
    
  7. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。

  8. 確認是否已新增節點。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    擴充的控制平面現在有 3 個節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

擴充 Worker 節點

可以透過使用 kubectl 增加 worker 節點數目來擴充 Tanzu Kubernetes 叢集。

  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 列出命名空間中正在執行的 Kubernetes 叢集。
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 取得目標叢集中正在執行的節點數目。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    例如,以下叢集具有 3 個控制平面節點和 3 個 worker 節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. 載入叢集資訊清單,以使用 kubectl edit 命令進行編輯。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。

  6. 找到 spec.topology.workers.count 參數並增加節點數目。
    ...
    workers:
        count: 3
    ...
    
    ...
    workers:
        count: 4
    ...
    
  7. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。

  8. 確認是否已新增 worker 節點。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    擴充後,叢集有 4 個 worker 節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               4        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

縮小 Worker 節點

可以透過減少 worker 節點數目來縮小 Tanzu Kubernetes 叢集。不支援縮小控制平面。

  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 列出命名空間中正在執行的 Kubernetes 叢集。
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 取得目標叢集中正在執行的節點數目。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    例如,以下叢集具有 3 個控制平面節點和 3 個 worker 節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               4        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. 載入叢集資訊清單,以使用 kubectl edit 命令進行編輯。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。

  6. 找到 spec.topology.workers.count 參數並增加節點數目。
    ...
    workers:
        count: 4
    ...
    
    ...
    workers:
        count: 2
    ...
    
  7. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。

  8. 確認是否已移除 worker 節點。
    kubectl get tanzukubernetescluster tkgs-cluster-1
    縮小後,叢集有 2 個 worker 節點。
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               2        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

垂直調整叢集

可以透過變更用於主控叢集節點的虛擬機器類別來垂直調整 Tanzu Kubernetes 叢集。控制平面和 worker 節點均支援垂直調整。

Tanzu Kubernetes Grid 服務 支援透過服務內建的輪流更新機制垂直調整叢集節點。如果變更 VirtualMachineClass 定義,則服務會推出具有該新類別的新節點,並停止舊節點。請參閱更新 Tanzu Kubernetes 叢集

  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 列出命名空間中正在執行的 Kubernetes 叢集。
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 說明目標 Tanzu Kubernetes 叢集並檢查虛擬機器類別。
    kubectl describe tanzukubernetescluster tkgs-cluster-2

    例如,以下叢集使用的是 best-effort-small 虛擬機器類別。

    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-small
          ...
        Workers:
          Class:          best-effort-small
          ...
    
  5. 列出並說明可用的虛擬機器類別。
    kubectl get virtualmachineclassbinding
    kubectl describe virtualmachineclassbinding
    備註: 要使用的虛擬機器類別必須繫結到 vSphere 命名空間。請參閱 Tanzu Kubernetes 叢集的虛擬機器類別
  6. 開啟以編輯目標叢集資訊清單。
    kubectl edit tanzukubernetescluster/tkgs-cluster-2

    叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。

  7. 變更虛擬機器類別以編輯資訊清單。
    例如,編輯叢集資訊清單,以對控制平面和 worker 節點使用 guaranteed-xlarge 虛擬機器類別。
    spec:
      topology:
        controlPlane:
          class: guaranteed-xlarge
          ...
        workers:
          class: guaranteed-xlarge
          ...
    
  8. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    儲存檔案時,kubectl 會將變更套用至叢集。在背景中,Tanzu Kubernetes Grid 服務會佈建新節點並刪除舊節點。如需輪流更新程序的說明,請參閱關於 Tanzu Kubernetes Grid 服務 叢集更新

  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