可以透過變更用於主控叢集節點的虛擬機器類別來更新 Tanzu Kubernetes 叢集。
必要條件
此工作會使用 kubectl edit tanzukubernetescluster/CLUSTER-NAME
命令更新叢集資訊清單。kubectl edit 命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。儲存檔案時,將透過變更來更新叢集。請參閱為 Kubectl 指定預設文字編輯器。
程序
- 使用 主管叢集 進行驗證。請參閱以 vCenter Single Sign-On 使用者身分連線至 主管叢集。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- 將內容切換到佈建目標 Tanzu Kubernetes 叢集的 vSphere 命名空間。
kubectl config use-context SUPERVISOR-NAMESPACE
- 說明目標 Tanzu Kubernetes 叢集並檢查虛擬機器類別。
kubectl describe tanzukubernetescluster CLUSTER-NAME
例如,此叢集使用的是 best-effort-medium 虛擬機器類別:
Spec:
...
Topology:
Control Plane:
Class: best-effort-medium
...
Workers:
Class: best-effort-medium
...
- 列出並說明命名空間中的可用虛擬機器類別。
kubectl get virtualmachineclassbindings
備註: 命令
kubectl get virtualmachineclasses
列出了
主管叢集上存在的所有虛擬機器類別。由於您必須將虛擬機器類別與
vSphere 命名空間相關聯,因此只能使用繫結到目標命名空間的虛擬機器類別。
- 執行下列命令以編輯叢集資訊清單。
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- 透過變更
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
...
- 儲存對資訊清單檔案所做的變更。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,
Tanzu Kubernetes Grid 服務 會佈建新的節點虛擬機器並停止舊的節點虛擬機器。
- 確認 kubectl 是否報告資訊清單編輯已成功記錄。
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
備註: 如果您收到錯誤,或 kubectl 未報告叢集資訊清單已成功編輯,請確保您使用 KUBE_EDITOR 環境變數正確設定了預設文字編輯器。請參閱
為 Kubectl 指定預設文字編輯器。
- 確認叢集是否正在更新。
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
- 確認叢集是否已更新。
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