Vous pouvez utiliser la méthode kubectl patch
pour effectuer une mise à jour sur place d'un cluster Tanzu Kubernetes. La méthode kubectl patch
constitue une alternative à l'utilisation de la commande kubectl edit
pour effectuer l'une des opérations de mise à jour de cluster prises en charge.
À propos de la commande Kubectl Patch
kubectl patch
comme décrit dans cette rubrique pour mettre à jour une spécification de cluster afin de la rendre conforme à l'API TKGS v1alpha2. Pour ce type de mise à jour, vous devez utiliser
kubectl edit
. Reportez-vous à la section
Mise à jour d'une version de Tanzu Kubernetes après la conversion de la spécification de cluster vers l'API TKGS v1alpha2.
kubectl patch
effectue une mise à jour « sur place » d'un cluster. L'objectif de cette commande est de fournir une méthode de mise à niveau des versions Kubernetes et correspond à l'approche documentée ici. Pour plus d'informations sur la commande
kubectl patch
, reportez-vous à la section
Mettre à jour les objets API sur place à l'aide du correctif kubectl dans la documentation de Kubernetes.
L'approche illustrée ici utilise la commande shell UNIX read
pour obtenir une entrée depuis le clavier et l'attribuer à une variable nommée $PATCH
. La commande kubectl patch
appelle l'API Kubernetes pour mettre à jour le manifeste du cluster. L'indicateur --type=merge
indique que les données contiennent uniquement les propriétés qui diffèrent du manifeste existant.
Mettre à niveau la version de Kubernetes à l'aide de la méthode Patch
La méthode la plus courante pour déclencher une mise à jour continue consiste à modifier la version de distribution de Kubernetes pour le cluster, à l'aide des propriétés .spec.distribution.version
et .spec.distribution.fullVersion
. Vous mettez à jour la suggestion de version
, et effacez ou annulez la fullVersion
pour éviter une éventuelle discordance de version pendant la découverte.
$ 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
Appliquez la mise à jour à l'aide de la commande kubectl patch
. Vous devez inclure les guillemets entourant la variable "$PATCH"
pour conserver les caractères de saut de ligne dans le manifeste du cluster. Remplacez la valeur TKG-CLUSTER-NAME par le nom réel de votre cluster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Mettre à jour le cluster en modifiant la classe VirtualMachineClass pour les nœuds à l'aide de la méthode Patch
Une autre méthode pour déclencher une mise à jour continue d'un cluster Tanzu Kubernetes consiste à modifier la VirtualMachineClass
des pools de nœuds, c'est-à-dire à modifier la propriété .spec.topology.controlPlane.class
ou la propriété .spec.topology.workers.class
.
read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: class: best-effort-xlarge workers: class: best-effort-xlarge EOF
Appliquez la mise à jour à l'aide de la commande kubectl patch
, en remplaçant la variable par le nom du cluster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Mettre à jour le cluster en modifiant la classe StorageClass pour les nœuds à l'aide de la méthode Patch
Une autre méthode pour déclencher une mise à jour continue d'un cluster Tanzu Kubernetes consiste à modifier la StorageClass
des pools de nœuds, c'est-à-dire à modifier la propriété .spec.topology.controlPlane.storageClass
ou la propriété .spec.topology.workers.storageClass
.
$ read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: storageClass: gc-storage-profile workers: storageClass: gc-storage-profile EOF
kubectl patch
, en remplaçant la variable par le nom du cluster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched