Sie können die kubectl patch
-Methode verwenden, um ein „direktes“ Update eines Tanzu Kubernetes-Clusters durchzuführen. Die kubectl patch
-Methode ist eine Alternative zur Verwendung des kubectl edit
-Befehls, um einen der unterstützten Clusteraktualisierungsvorgänge auszuführen.
Der Befehl „kubectl patch“
kubectl patch
zu verwenden, wie in diesem Thema beschrieben, um eine Clusterspezifikation zu aktualisieren, damit sie mit der TKGS-v1alpha2-API übereinstimmt. Für diese Art der Aktualisierung sollten Sie
kubectl edit
verwenden. Weitere Informationen finden Sie unter
Aktualisieren einer Tanzu Kubernetes-Version, nachdem die Cluster-Spezifikation in die TKGS v1alpha2-API konvertiert wurde.
kubectl patch
wird ein „direktes“ Update eines Clusters durchgeführt. Der Zweck dieses Befehls besteht darin, eine Methode für das Upgrade von Kubernetes-Versionen bereitzustellen, und dies ist der hier dokumentierte Ansatz. Weitere Informationen zum Befehl
kubectl patch
finden Sie unter
Update API Objects in Place Using kubectl patch in der Kubernetes-Dokumentation.
Bei der hier dargestellten Vorgehensweise wird der UNIX-Shell-Befehl read
verwendet, um Eingaben über die Tastatur zu übernehmen und sie einer Variablen mit dem Namen $PATCH
zuzuweisen. Der Befehl kubectl patch
ruft die Kubernetes-API zum Aktualisieren des Cluster-Manifests auf. Das --type=merge
-Flag gibt an, dass die Daten nur diejenigen Eigenschaften enthalten, die sich von den im Manifest vorhandenen Daten unterscheiden.
Upgrade der Kubernetes-Version mithilfe der Patch-Methode
Die häufigste Methode zum Auslösen eines parallelen Updates ist die Änderung der Verteilungsversion von Kubernetes für den Cluster, wobei die Eigenschaften .spec.distribution.version
und .spec.distribution.fullVersion
verwendet werden. Sie aktualisieren den version
-Hinweis und deaktivieren die fullVersion
bzw. setzen sie auf null, um einen potenziellen Versionskonflikt während des Erkennungsvorgangs zu vermeiden.
$ 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
Wenden Sie das Update unter Verwendung des Befehls kubectl patch
an. Sie müssen die Variable "$PATCH"
einschließlich der Anführungszeichen angeben, damit die Zeilenendmarken im Cluster-Manifest erhalten bleiben. Ersetzen Sie den Wert für TKG-CLUSTER-NAME durch den tatsächlichen Namen Ihres Clusters.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Aktualisieren des Clusters durch Ändern der VirtualMachineClass für die Knoten mithilfe der Patch-Methode
Eine weitere Möglichkeit, ein paralleles Update eines Tanzu Kubernetes-Clusters auszulösen, besteht darin, die VirtualMachineClass
für die Knotenpools zu ändern, indem die Eigenschaft .spec.topology.controlPlane.class
oder .spec.topology.workers.class
geändert wird.
read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: class: best-effort-xlarge workers: class: best-effort-xlarge EOF
Wenden Sie das Update unter Verwendung des Befehls kubectl patch
an, und ersetzen Sie dabei die Variable durch den Clusternamen.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Aktualisieren des Clusters durch Ändern der StorageClass für die Knoten mithilfe der Patch-Methode
Eine weitere Möglichkeit, ein paralleles Update eines Tanzu Kubernetes-Clusters auszulösen, besteht darin, die StorageClass
für die Knotenpools zu ändern, indem die Eigenschaft .spec.topology.controlPlane.storageClass
oder .spec.topology.workers.storageClass
geändert wird.
$ read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: storageClass: gc-storage-profile workers: storageClass: gc-storage-profile EOF
kubectl patch
an, und ersetzen Sie dabei die Variable durch den Clusternamen.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched