Puede utilizar el método kubectl patch
para realizar una actualización "in situ" de un clúster de Tanzu Kubernetes. El método kubectl patch
es una alternativa al uso del comando kubectl edit
para realizar una de las operaciones de actualización del clúster compatibles.
Acerca del comando Kubectl Patch
kubectl patch
como se describe en este tema para actualizar una especificación de clúster para que cumpla con la API v1alpha2 de TKGS. Para este tipo de actualización, debe utilizar
kubectl edit
. Consulte
Actualizar una versión de Tanzu Kubernetes después de convertir la especificación del clúster a la API v1alpha2 de TKGS.
kubectl patch
realiza una actualización "in situ" de un clúster. El propósito de este comando consiste en proporcionar un método para actualizar las versiones de Kubernetes y es el enfoque que se explica aquí. Para obtener más información sobre el comando
kubectl patch
, consulte
Actualizar los objetos de la API mediante la revisión de kubectl en la documentación de Kubernetes.
El método que se demuestra aquí utiliza el comando de Shell de UNIX read
para tomar la entrada del teclado y asignarla a una variable denominada $PATCH
. El comando kubectl patch
invoca a la API de Kubernetes para actualizar el manifiesto del clúster. La marca --type=merge
indica que los datos contienen solo las propiedades que son diferentes del manifiesto existente.
Actualizar la versión de Kubernetes con el método de revisión
El método más común para activar una actualización gradual es cambiar la versión de distribución de Kubernetes del clúster, mediante la propiedad .spec.distribution.version
o .spec.distribution.fullVersion
. Actualice la sugerencia de version
y desactive o anule fullVersion
para evitar que se produzca un error de coincidencia de versiones durante la detección.
$ 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
Aplique la actualización mediante el comando kubectl patch
. Debe incluir las comillas alrededor de la variable "$PATCH"
para conservar los caracteres de línea nueva en el manifiesto del clúster. Reemplace el valor TKG-CLUSTER-NAME por el nombre real del clúster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Actualizar el clúster mediante el cambio del objeto VirtualMachineClass para los nodos con el método de revisión
Otra forma de activar una actualización gradual de un clúster de Tanzu Kubernetes es cambiar el objeto VirtualMachineClass
de los grupos de nodos, es decir, cambiar las propiedades .spec.topology.controlPlane.class
o .spec.topology.workers.class
.
read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: class: best-effort-xlarge workers: class: best-effort-xlarge EOF
Aplique la actualización mediante el comando kubectl patch
y reemplace la variable por el nombre del clúster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
Actualizar el clúster mediante el cambio del objeto StorageClass para los nodos con el método de revisión
Otra forma de activar una actualización gradual de un clúster de Tanzu Kubernetes es cambiar el objeto StorageClass
de los grupos de nodos, es decir, cambiar las propiedades .spec.topology.controlPlane.storageClass
o .spec.topology.workers.storageClass
.
$ read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: storageClass: gc-storage-profile workers: storageClass: gc-storage-profile EOF
kubectl patch
y reemplace la variable por el nombre del clúster.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched