Compartir a través de


Automatización de las actualizaciones de Kubernetes e imágenes de nodo en varios clústeres mediante Azure Kubernetes Fleet Manager (versión preliminar)

Los administradores de plataformas que administran un gran número de clústeres suelen tener problemas con el almacenamiento provisional de las actualizaciones de varios clústeres (por ejemplo, la actualización de la imagen del SO de nodo o las versiones de Kubernetes) de forma segura y predecible. Para abordar este problema, Azure Kubernetes Fleet Manager (Fleet) le permite organizar las actualizaciones en varios clústeres mediante ejecuciones de actualización.

Las ejecuciones de actualizaciones constan de fases, grupos y estrategias y se pueden aplicar manualmente, para actualizaciones únicas, o automáticamente, para actualizaciones periódicas en curso mediante perfiles de actualización automática. Todas las ejecuciones de actualización (manuales o automatizadas) respetan las ventanas de mantenimiento del clúster miembro.

En este artículo se explica cómo usar los perfiles de actualización automática para desencadenar automáticamente las ejecuciones de actualización cuando se ponen a disposición nuevas versiones de imágenes de Kubernetes o de nodo.

Importante

Las características en vista previa de Azure Kubernetes Fleet Manager están disponibles en autoservicio y de manera opcional. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de Azure Kubernetes Fleet Manager reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción.

Requisitos previos

  • Siga la introducción conceptual de los perfiles de actualización automática, que proporciona una explicación de las configuraciones a las que se hace referencia en esta guía.

  • Debe 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.

  • Si quiere usar una estrategia de actualización, debe configurar una mediante las instrucciones del artículo sobre cómo crear una actualización de ejecución. Necesita el identificador de recursos de estrategia de actualización para usarlo con un perfil de actualización automática.

  • Establezca estas variables de entorno:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<ask-cluster-name>
    
  • Necesita la versión 2.61.0 de la CLI de Azure o posterior. Para la instalación o la actualización, consulte Instalación de la CLI de Azure.

  • También necesitará la versión 1.3.0 de la extensión de la CLI de Azure o posterior 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 desencadenadas por las actualizaciones automáticas 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.

Creación de perfiles de actualización automática

Use el comando az fleet autoupgradeprofile create para crear perfiles como se muestra.

Puede crear un perfil de actualización automática deshabilitado pasando el argumento --disabled al usar el comando create. Para habilitar el perfil de actualización automática, debe volver a emitir todo el comando create y omitir el argumento --disabled.

Actualizaciones estables de Kubernetes del canal

Actualice la versión de revisión de Kubernetes compatible más reciente en la versión secundaria N-1, donde N es la versión secundaria compatible más reciente.

Actualice los clústeres de miembros secuencialmente uno a uno.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

Actualice los clústeres de miembros mediante una estrategia de actualización existente.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

Actualice los clústeres de miembros mediante una estrategia de actualización existente, lo que garantiza que se use la misma versión de imagen de nodo en cada región de Azure. Todos los clústeres de miembros ejecutarán la misma versión de imagen de nodo.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection-type Consistent

Actualice los clústeres de miembros mediante una estrategia de actualización existente, mediante la versión de imagen de nodo disponible más reciente en cada región de Azure. Los clústeres de miembros pueden ejecutar varias versiones de imagen de nodo.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection-type Latest

Actualizaciones de imágenes de nodo

Actualice los nodos con un VHD recién revisado que contiene correcciones de seguridad y de errores.

Actualice las imágenes de nodo para los clústeres de miembros, procesando clústeres secuencialmente uno a uno.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

Actualice las imágenes de nodo para los clústeres de miembros, procesando clústeres mediante una estrategia de actualización existente.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

Visualización de perfiles de actualización automática

Puede usar los comandos autoupgradeprofile list o autoupgradeprofile show para ver el perfil de actualización automática.

Enumere todos los perfiles de actualización automática de una flota.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET

Mostrar un perfil de actualización automática específico para una flota.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Eliminación de perfiles de actualización automática

Utilice el comando siguiente para eliminar un perfil de actualización automática existente. Se le pide que confirme la eliminación. Si desea eliminar inmediatamente el perfil, incluya --yes.

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Validación de la actualización automática

Las actualizaciones automáticas solo se producirán cuando haya nuevas imágenes de Kubernetes o de nodo disponibles. Puede comprobar las versiones existentes como línea base como se indica a continuación.

# Get Kubernetes version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

Una vez completadas las ejecuciones de actualización, puede volver a ejecutar estos comandos y ver las versiones actualizadas que se implementan.