Orquestar las actualizaciones entre varios clústeres mediante Azure Kubernetes Fleet Manager
Los administradores de plataformas que administran flotas de Kubernetes con un gran número de clústeres suelen tener problemas con el almacenamiento provisional de sus actualizaciones de forma segura y predecible en varios clústeres. Para solucionar este punto problemático, Kubernetes Fleet Manager (Fleet) le permite organizar las actualizaciones en varios clústeres mediante ejecuciones de actualizaciones, fases, grupos y estrategias.
Requisitos previos
Siga la introducción conceptual de esta característica, que proporciona una explicación de las estrategias de actualización, las ejecuciones, las fases y las referencias a grupos de este documento.
Debes tener un recurso Fleet con uno o varios clústeres miembro. Si no es así, siga el inicio rápido para crear un recurso Fleet y combinar clústeres de Azure Kubernetes Service (AKS) como miembros. En este tutorial se muestra un recurso Fleet con cinco clústeres de miembros de AKS como ejemplo.
Establezca estas variables de entorno:
export GROUP=<resource-group> export FLEET=<fleet-name>
Si vas a seguir las instrucciones de la CLI de Azure de esta página, necesitarás tener instalada la versión 2.53.1 o posterior de la CLI de Azure. Para la instalación o la actualización, consulte Instalación de la CLI de Azure.
También necesitarás la extensión de la CLI de Azure
fleet
, que se puede instalar ejecutando el siguiente comando:az extension add --name fleet
Ejecute el siguiente comando para actualizar a la versión más reciente de la extensión publicada:
az extension update --name fleet
Nota:
Las ejecuciones de actualización respetan las ventanas de mantenimiento planeado que establezca en el nivel de clúster de AKS. Para obtener más información sobre cómo las ejecuciones de actualizaciones controlan los clústeres de miembros que se han configurado con ventanas de mantenimiento planeado, consulte Mantenimiento planeado en varios clústeres de miembros.
Actualizar todos los clústeres uno a uno
En la página del recurso Azure Kubernetes Fleet Manager, ve al menú Actualizar varios clústeres y selecciona Crear.
Puedes elegir Uno por uno o Fases.
Para Ámbito de actualización, puedes optar por actualizar tanto la versión de Kubernetes como la versión de la imagen de nodo o solo actualizar Solo versión de la imagen de nodo solo.
Para la imagen del nodo, están disponibles las siguientes opciones:
- Latest: actualiza todos los clústeres de AKS en la ejecución de la actualización a la imagen más reciente disponible para ese clúster en su región.
- Consistent: como es posible que una ejecución de actualización tenga clústeres de AKS en varias regiones donde las imágenes de nodo disponibles más recientes pueden ser diferentes, comprueba el seguimiento de versiones para obtener más información. La ejecución de la actualización elige la imagen común más reciente en todas estas regiones para lograr la coherencia.
Actualización de clústeres en un orden específico
Actualizar los grupos y fases proporcionan más control sobre la secuencia seguida por las ejecuciones de actualización al actualizar los clústeres. Dentro de una fase de actualización, las actualizaciones se aplican a todos los distintos grupos de actualizaciones en paralelo; dentro de un grupo de actualizaciones, los clústeres miembro se actualizan secuencialmente.
Asignar un clúster a un grupo de actualizaciones
Puedes asignar un clúster de miembros a un grupo de actualizaciones específico de una de las dos formas existentes.
- Asigne al grupo al agregar un clúster miembro a la flota. Por ejemplo:
- El segundo método consiste en asignar un miembro de flota ya existente a un grupo de actualizaciones. Por ejemplo:
Nota:
Cualquier miembro de flota solo puede formar parte de un grupo de actualizaciones, pero un grupo de actualizaciones puede tener varios miembros de flota dentro de él. El propio grupo de actualizaciones no es un tipo de recurso independiente. Los grupos de actualización son solo cadenas que representan referencias de los miembros de la flota. Por lo tanto, si se eliminan todos los miembros de la flota que tienen referencias a un grupo de actualizaciones común, ese grupo de actualizaciones específico dejará de existir también.
Definir la ejecución y las fases de la actualización
Puede definir una ejecución de actualización mediante fases de actualización para ordenar secuencialmente la aplicación de actualizaciones a diferentes grupos de actualizaciones. Por ejemplo, una primera fase de actualización podría actualizar los clústeres de miembros del entorno de prueba y, posteriormente, una segunda fase de actualización actualizaría los clústeres de miembros del entorno de producción. También puede especificar un tiempo de espera entre las fases de actualización.
En la página del recurso Azure Kubernetes Fleet Manager, ve a Actualizar varios clústeres y selecciona Crear.
Selecciona Fases y elige (Imagen de nodo [más reciente] + versión de Kubernetes o Imagen de nodo [más reciente], según el ámbito de actualización deseado.
En Fases, selecciona Crear fase. Ahora puedes especificar el nombre y la duración de la espera de la fase después de cada fase.
Elegir los grupos de actualizaciones que se desean incluir en esta fase.
Una vez que se han definido todas las fases y ordenado con los controles Subir y Bajar, se debe proceder con la creación de la ejecución de la actualización.
En el menú Multi-cluster update (Actualización de varios clústeres), elija la ejecución de actualización y seleccione Iniciar.
Crear una ejecución de actualización mediante estrategias de actualización
En la sección anterior, crear una ejecución de actualización requería que se especificaran las fases, los grupos y su orden cada vez. Las estrategias de actualización simplifican esto al permitir almacenar plantillas para ejecuciones de actualizaciones.
Nota:
Es posible crear varias ejecuciones de actualización con nombres únicos de la misma estrategia de actualización.
Al crear las ejecuciones de actualización, se ofrece la opción de crear una estrategia de actualización al mismo tiempo y guardar eficazmente la ejecución como plantilla para las ejecuciones de actualizaciones posteriores.