vSphere with Tanzu admite actualizaciones graduales para los Supervisores y los clústeres de Tanzu Kubernetes Grid, así como para la infraestructura que respalda estos clústeres.

Nota: No se puede realizar una transición de Supervisores que utilice vSphere Update Manager a vSphere Lifecycle Manager. Transición de vSphere Update Manager a vSphere Lifecycle Manager. solo se admite para clústeres que no tienen habilitado vSphere with Tanzu.

Cómo se actualizan los Supervisoresy los clústeres de Tanzu Kubernetes Grid

vSphere with Tanzu utiliza un modelo de actualización gradual para los Supervisores y los clústeres de Tanzu Kubernetes Grid. El modelo de actualización gradual garantiza un tiempo de inactividad mínimo para las cargas de trabajo del clúster durante el proceso de actualización. Las actualizaciones graduales incluyen la actualización de las versiones de software de Kubernetes, así como de la infraestructura y los servicios que respaldan los clústeres de Kubernetes, como los recursos y las configuraciones de máquinas virtuales, los espacios de nombres de vSphere y los recursos personalizados.

Para que la actualización se realice correctamente, el entorno debe cumplir varios requisitos de compatibilidad. El sistema aplica condiciones de nueva comprobación para garantizar que los clústeres estén listos para las actualizaciones y admite la reversión si la actualización del clúster no se realiza correctamente.
Nota: Una actualización de vSphere with Tanzu implica más que la actualización de la versión de software de Kubernetes. Cuando hablamos de "actualización" nos referimos a este proceso y no a la forma limitada de actualización que incrementa la versión de software.

Dependencia entre las actualizaciones de Supervisor y las actualizaciones de clústeres de Tanzu Kubernetes Grid

Debe actualizar el Supervisor y los clústeres de Tanzu Kubernetes Grid por separado. Sin embargo, tenga en cuenta que existen dependencias entre los dos.

La actualización de un Supervisor probablemente active una actualización gradual de los clústeres de Tanzu Kubernetes Grid implementados allí. Consulte Actualizar el Supervisor mediante una actualización de los espacios de nombres de vSphere.

Es posible que deba actualizar uno o varios clústeres de Tanzu Kubernetes Grid antes de actualizar un Supervisor si el clúster de Tanzu Kubernetes Grid no es compatible con la versión de Supervisor de destino. Consulte Comprobar la compatibilidad del clúster de Tanzu Kubernetes Grid para la actualización del Supervisor.

Acerca de las actualizaciones de Supervisor

Cuando se inicia una actualización del Supervisor, el sistema crea una nueva máquina virtual de plano de control y la une al plano de control del Supervisor existente. Durante esta fase de la actualización, el inventario de vSphere muestra cuatro máquinas virtuales de plano de control a medida que el sistema agrega una nueva máquina virtual actualizada y, a continuación, elimina la máquina virtual antigua desactualizada. Los objetos se migran a partir de una de las máquinas virtuales del plano de control antiguas hacia la nueva, mientras que la máquina virtual del plano de control se elimina. Este proceso se repite uno por uno hasta que se actualizan todas las máquinas virtuales del plano de control. Una vez actualizadas las máquinas virtuales del plano de control, los nodos de trabajo pasan por un tipo de actualización gradual similar. Los nodos de trabajo son los hosts ESXi y cada proceso de Spherelet en cada host ESXi se actualiza de uno en uno.

Puede elegir entre las siguientes actualizaciones:
  • Actualice los espacios de nombres de vSphere.
  • Actualice todo, incluidas las versiones de VMware y las versiones de Kubernetes.

Actualizar los espacios de nombres de vSphere

Puede usar el flujo de trabajo de actualización de los espacios de nombres de vSphere para actualizar la versión de Kubernetes que se ejecuta en el Supervisor (por ejemplo, de Kubernetes 1.23 a Kubernetes 1.24) y la infraestructura que respalda el Supervisor y los clústeres de Tanzu Kubernetes Grid. Este tipo de actualización es más frecuente y se utiliza para mantener el ritmo de la cadencia de versiones de Kubernetes. A continuación se muestra la secuencia de actualización de los espacios de nombres de vSphere.
  1. Actualice vCenter Server.
  2. Realice una actualización de los espacios de nombres de vSphere (incluida la actualización de Kubernetes).

Para realizar una actualización de espacios de nombres de vSphere, consulte Actualizar el Supervisor mediante una actualización de los espacios de nombres de vSphere.

Actualizar todos los componentes de vSphere with Tanzu

Utilice el flujo de trabajo de actualización total para actualizar todos los componentes de vSphere with Tanzu. Este tipo de actualización es necesaria cuando se actualizan versiones principales; por ejemplo, de NSX-T 3.X a 4 y de vSphere 7.x a 8.

Nota: Antes de actualizar a vCenter Server 8.0, asegúrese de que la versión de Kubernetes de todos los Supervisores sea la versión 1.22 como mínimo, preferiblemente la versión compatible más reciente, y de que la versión de versión de Tanzu Kubernetes de los clústeres de Tanzu Kubernetes Grid sea la 1.22, preferiblemente la versión compatible más reciente.
Este flujo de trabajo de actualización no es frecuente en función de cuándo hay nuevas versiones de productos de VMware. Esta es la secuencia de actualización total:
  1. Compruebe la matriz de interoperabilidad de VMware https://interopmatrix.vmware.com/Interoperability para determinar la compatibilidad de vCenter Server y NSX. La funcionalidad de vSphere with Tanzu se proporciona mediante el software de plano de control de carga de trabajo (WCP) que se envía con vCenter Server.
  2. Actualice NSX, si es compatible.
  3. Actualice vCenter Server.
  4. Actualice vSphere Distributed Switch.
  5. Actualice los hosts ESXi.
  6. Compruebe la compatibilidad de los clústeres de Tanzu Kubernetes Grid aprovisionados con la versión del Supervisor de destino.
  7. Actualice los espacios de nombres de vSphere (incluida la versión de Kubernetes de Supervisor).
  8. Actualice los clústeres de Tanzu Kubernetes Grid.
El diagrama muestra el flujo de trabajo general para las actualizaciones de vSphere with Tanzu. El diagrama muestra los pasos para las actualizaciones de vSphere with Tanzu.

Acerca de las actualizaciones de clústeres de Tanzu Kubernetes Grid

Cuando se actualiza un Supervisor, también se actualizan los componentes de infraestructura que respaldan los clústeres de Tanzu Kubernetes Grid implementados en ese Supervisor, como Tanzu Kubernetes Grid 2.0. Cada actualización de infraestructura puede incluir actualizaciones de los servicios que respaldan Tanzu Kubernetes Grid 2.0 (CNI, CSI y CPI) y opciones de configuración actualizadas para los nodos de trabajo y las máquinas virtuales del plano de control que se pueden aplicar a los clústeres de Tanzu Kubernetes Grid existentes. Para garantizar que la configuración cumpla con los requisitos de compatibilidad, vSphere with Tanzu realiza comprobaciones previas durante la actualización gradual y aplica la conformidad.

Para realizar una actualización gradual de un clúster de Tanzu Kubernetes Grid, debe actualizar el manifiesto del clúster. Consulte Actualizar clústeres de TKG 2 en Supervisor. Sin embargo, tenga en cuenta que, cuando se actualizan los espacios de nombres de vSphere, el sistema propaga de inmediato las configuraciones actualizadas a todos los clústeres de Tanzu Kubernetes Grid. Estas actualizaciones pueden activar automáticamente una actualización gradual de los nodos de trabajo y de los nodos del plano de control de Tanzu Kubernetes Grid.

El proceso de actualización gradual para reemplazar los nodos del clúster es similar a la actualización gradual de pods de una implementación de Kubernetes. Dos controladoras distintas se encargan de realizar una actualización gradual de los clústeres de Tanzu Kubernetes Grid: la controladora de complementos y la controladora de TanzuKubernetesCluster. Dentro de esas dos controladoras hay tres etapas clave de una actualización gradual: la actualización de los complementos, la actualización del plano de control y la actualización de los nodos de trabajo. Estas etapas se producen en orden, con comprobaciones previas que impiden que un paso comience hasta que el paso anterior haya avanzado lo suficiente. Es posible que estos pasos se omitan si se determina que son innecesarios. Por ejemplo, una actualización podría solo afectar a los nodos de trabajo y, por tanto, no necesitaría actualizaciones de los planos de control ni de los complementos.

Durante el proceso de actualización, el sistema agrega un nuevo nodo de clúster y espera a que el nodo se conecte con la versión de Kubernetes de destino. A continuación, el sistema marca el nodo antiguo para su eliminación, pasa al siguiente nodo y repite el proceso. El nodo antiguo no se eliminará hasta que se eliminen todos los pods. Por ejemplo, si un pod se define con PodDisruptionBudgets que impide que un nodo se vacíe completamente, el nodo se acordona, pero no se elimina hasta que dichos pods se puedan expulsar. El sistema actualiza primero todos los nodos del plano de control y, a continuación, los nodos de trabajo. Durante una actualización, el estado del clúster de Tanzu Kubernetes Grid cambia a "Actualizando". Una vez finalizado el proceso de actualización gradual, el estado del clúster de Tanzu Kubernetes Grid cambia a "En ejecución".

Los pods en ejecución en un clúster de Tanzu Kubernetes Grid que no están regidos por una controladora de replicación se eliminarán durante la actualización de la versión de Kubernetes como parte de la purga de nodos de trabajo al actualizar el clúster de Tanzu Kubernetes Grid. Esto sucede si la actualización del clúster se activa de forma manual o de forma automática por una actualización de espacios de nombres de vSphere. Los pods que no están regidos por una controladora de replicación incluyen aquellos pods que no se crean como parte de una especificación de ReplicaSet o de implementación. Para obtener más información, consulte el tema Ciclo de vida del pod: duración del pod en la documentación de Kubernetes.