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

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

vSphere with Tanzu utiliza un modelo de actualización gradual para los clústeres supervisor y los clústeres de servicio 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 servicios y los espacios de nombres de vSphere, y los recursos personalizados.

Para que la actualización se realice correctamente, la configuración debe cumplir con varios requisitos de compatibilidad, de modo que el sistema aplique condiciones de reverificación a fin de garantizar que los clústeres estén listos para las actualizaciones y que dicho sistema sea compatible con la reversión si el clúster no se actualiza 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 clúster supervisor y las actualizaciones de clústeres de servicio Tanzu Kubernetes Grid

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

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

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

Acerca de las actualizaciones de clúster supervisor

Cuando se inicia una actualización de una instancia de clúster supervisor, el sistema crea un nuevo nodo de plano de control y lo une al plano de control existente. El inventario de vSphere muestra cuatro nodos del plano de control durante esta fase de la actualización, ya que el sistema agrega un nuevo nodo actualizado y, a continuación, elimina el nodo antiguo obsoleto. Los objetos se migran a partir de uno de los nodos del plano de control antiguos hacia el nuevo, mientras que el nodo antiguo del plano de control se elimina. Este proceso se repite de a un nodo por vez hasta que se actualizan todos los nodos del plano de control. Una vez actualizado el 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.
Puede usar el flujo de trabajo de actualización de espacios de nombres de vSphere para actualizar la versión de Kubernetes que se está ejecutando en el clúster supervisor (por ejemplo, de Kubernetes 1.16.7 a Kubernetes 1.17.4) y la infraestructura que respalda el clúster supervisor y los clústeres de servicio 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 clúster supervisor mediante una actualización de los espacios de nombres de vSphere.

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. 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-T Data Center. 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-T Data Center, 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 servicio Tanzu Kubernetes Grid aprovisionados con la versión del clúster supervisor de destino.
  7. Actualice los espacios de nombres de vSphere (incluida la versión de Kubernetes de clúster supervisor).
  8. Actualice los clústeres de servicio 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 servicio Tanzu Kubernetes Grid

Cuando se actualiza una instancia de clúster supervisor, también se actualizan los componentes de infraestructura que respaldan los clústeres de servicio Tanzu Kubernetes Grid implementados en esa instancia de clúster supervisor, como el servicio Tanzu Kubernetes Grid. Cada actualización de infraestructura puede incluir actualizaciones de los servicios que respaldan servicio Tanzu Kubernetes Grid (CNI, CSI y CPI) y opciones de configuración actualizadas para los nodos de trabajo y el plano de control que se pueden aplicar a los clústeres de servicio 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 servicio Tanzu Kubernetes Grid, debe actualizar el manifiesto del clúster. Consulte Actualizar clústeres de Tanzu Kubernetes. 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 servicio 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 servicio 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 servicio 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 servicio Tanzu Kubernetes Grid cambia a "Actualizando". Una vez finalizado el proceso de actualización gradual, el estado del clúster de servicio Tanzu Kubernetes Grid cambia a "En ejecución".

Los pods en ejecución en un clúster de servicio 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 servicio 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.