可以透過變更用於主控叢集節點的虛擬機器類別來更新 TKG 服務叢集。
可以透過使用
kubectl edit
命令編輯
vmClass
定義來起始 TKG 服務叢集的輪流更新。將推出以已變更類別為基礎的新節點,並停用舊節點。
備註: 無法使用
kubectl apply
命令更新已部署的 TKG 叢集。
必要條件
此工作需要使用 kubectl edit 命令。此命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。儲存檔案時,將透過變更來更新叢集。若要為 kubectl 設定編輯器,請參閱 為 Kubectl 設定文字編輯器。
程序
- 使用 主管 進行驗證。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- 將內容切換到佈建目標 TKG 叢集的 vSphere 命名空間。
kubectl config use-context SUPERVISOR-NAMESPACE
- 說明目標 TKG 叢集並檢查虛擬機器類別。
v1alpha3 叢集:
kubectl describe tanzukubernetescluster CLUSTER-NAME
v1beta1 叢集:
kubectl describe cluster CLUSTER-NAME
- 列出並說明佈建叢集的 vSphere 命名空間 中的可用虛擬機器類別。
kubectl get virtualmachineclass
備註: 目標虛擬機器類別必須與佈建 TKG 叢集的
vSphere 命名空間 相關聯。如需有關將虛擬機器類別繫結到
vSphere 命名空間 的詳細資訊,請參閱 TKG 服務或虛擬機器服務說明文件。
- 執行下列命令以編輯叢集資訊清單。
v1alpha3 叢集:
kubectl edit tanzukubernetescluster/CLUSTER-NAME
v1beta1 叢集:
kubectl edit cluster/CLUSTER-NAME
- 變更虛擬機器類別字串以編輯資訊清單。
例如,如果您使用的是 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
的值更新為目標虛擬機器類別。
- 儲存對資訊清單檔案所做的變更。
儲存檔案時,kubectl 會將變更套用至叢集。在背景中,TKG 控制器會佈建新的節點虛擬機器並停止舊的節點虛擬機器。
- 確認 kubectl 是否報告資訊清單編輯已成功記錄。
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
備註: 如果您收到錯誤,或 kubectl 未報告叢集資訊清單已成功編輯,請確保您使用 KUBE_EDITOR 環境變數正確設定了預設文字編輯器。請參閱
為 Kubectl 設定文字編輯器。
- 確認叢集是否已更新。
v1alpha3 叢集:
kubectl get tanzukubernetescluster
v1beta1 叢集:
kubectl get cluster