您可以使用 kubectl patch
方法對 Tanzu Kubernetes 叢集執行「就地」更新。kubectl patch
方法是使用 kubectl edit
命令執行其中一個支援的叢集更新作業的替代方法。
關於 Kubectl Patch 命令
kubectl patch
更新叢集規格來達到使其符合 TKGS v1alpha2 API 的目的。對於此類更新,應使用
kubectl edit
。請參閱
將叢集規格轉換為 TKGS v1alpha2 API 後更新 Tanzu Kubernetes 版本。
kubectl patch
命令會對叢集執行「就地」更新。此命令的目的是提供 Kubernetes 版本的升級方法,正是此處記錄的方法。如需有關
kubectl patch
命令的詳細資訊,請參閱 Kubernetes 說明文件中的
〈使用 kubectl 修補程式就地更新 API 物件〉。
此處示範的方法使用 UNIX shell 命令 read
從鍵盤取得輸入,並將其指派給名為 $PATCH
的變數。kubectl patch
命令會叫用 Kubernetes API 來更新叢集資訊清單。--type=merge
旗標表示資料僅包含與現有資訊清單不同的內容。
使用修補程式方法升級 Kubernetes 版本
觸發輪流更新的最常見方法是使用 .spec.distribution.version
和 .spec.distribution.fullVersion
內容來變更叢集的 Kubernetes 發行版本。您可以更新 version
提示,並取消設定 fullVersion
或將其設為 null,以避免在探索期間發生潛在的版本不相符問題。
$ read -r -d '' PATCH <<'EOF' spec: distribution: fullVersion: null # NOTE: Must set to null when updating just the version field version: v1.18.5 EOF
使用 kubectl patch
命令套用更新。您必須在 "$PATCH"
變數的兩側加上引號,以在叢集資訊清單中保留換行字元。將 TKG-CLUSTER-NAME 值取代為叢集的實際名稱。
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
使用修補程式方法透過變更節點的 VirtualMachineClass 來更新叢集
觸發 Tanzu Kubernetes 叢集的輪流更新的另一種方式如下:變更節點集區的 VirtualMachineClass
,即變更 .spec.topology.controlPlane.class
內容或 .spec.topology.workers.class
內容。
read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: class: best-effort-xlarge workers: class: best-effort-xlarge EOF
使用 kubectl patch
命令套用更新,並將變數取代為叢集名稱。
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
使用修補程式方法透過變更節點的 StorageClass 來更新叢集
觸發 Tanzu Kubernetes 叢集的輪流更新的另一種方式如下:變更節點集區的 StorageClass
,即變更 .spec.topology.controlPlane.storageClass
內容或 .spec.topology.workers.storageClass
內容。
$ read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: storageClass: gc-storage-profile workers: storageClass: gc-storage-profile EOF
kubectl patch
命令套用更新,並將變數取代為叢集名稱。
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched