可以透過變更節點數目水平調整 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.
擴充控制平面
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 列出命名空間中正在執行的 Kubernetes 叢集。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 取得目標叢集中正在執行的節點數目。
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
- 載入叢集資訊清單,以使用
kubectl edit
命令進行編輯。kubectl edit tanzukubernetescluster/tkgs-cluster-1
叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。
- 找到
spec.topology.controlPlane.count
參數,並將節點數目從 1 個增加到 3 個。... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。
- 確認是否已新增節點。
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 叢集。
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 列出命名空間中正在執行的 Kubernetes 叢集。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 取得目標叢集中正在執行的節點數目。
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
- 載入叢集資訊清單,以使用
kubectl edit
命令進行編輯。kubectl edit tanzukubernetescluster/tkgs-cluster-1
叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。
- 找到
spec.topology.workers.count
參數並增加節點數目。... workers: count: 3 ...
... workers: count: 4 ...
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。
- 確認是否已新增 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 叢集。不支援縮小控制平面。
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 列出命名空間中正在執行的 Kubernetes 叢集。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 取得目標叢集中正在執行的節點數目。
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
- 載入叢集資訊清單,以使用
kubectl edit
命令進行編輯。kubectl edit tanzukubernetescluster/tkgs-cluster-1
叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。
- 找到
spec.topology.workers.count
參數並增加節點數目。... workers: count: 4 ...
... workers: count: 2 ...
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,主管叢集 上的 虛擬機器服務 會佈建新的工作節點。
- 確認是否已移除 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 叢集。
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換至執行 Tanzu Kubernetes 叢集所在的 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 列出命名空間中正在執行的 Kubernetes 叢集。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 說明目標 Tanzu Kubernetes 叢集並檢查虛擬機器類別。
kubectl describe tanzukubernetescluster tkgs-cluster-2
例如,以下叢集使用的是 best-effort-small 虛擬機器類別。
Spec: ... Topology: Control Plane: Class: best-effort-small ... Workers: Class: best-effort-small ...
- 列出並說明可用的虛擬機器類別。
kubectl get virtualmachineclassbinding
kubectl describe virtualmachineclassbinding
- 開啟以編輯目標叢集資訊清單。
kubectl edit tanzukubernetescluster/tkgs-cluster-2
叢集資訊清單會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟。
- 變更虛擬機器類別以編輯資訊清單。
例如,編輯叢集資訊清單,以對控制平面和 worker 節點使用
guaranteed-xlarge
虛擬機器類別。spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,Tanzu Kubernetes Grid 服務會佈建新節點並刪除舊節點。如需輪流更新程序的說明,請參閱關於 Tanzu Kubernetes Grid 服務 叢集更新。
- 確認叢集是否正在更新。
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