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

Se aplica a: ✔️ Gestor de flotas ✔️ Gestor de flotas con clúster de concentrador

Mantener los clústeres actualizados de forma oportuna y segura es una preocupación clave para los administradores de plataformas. Al adoptar Azure Kubernetes Fleet Manager Ejecuciones de actualización y Estrategias, puede utilizar perfiles de actualización automática para automatizar la ejecución de ejecuciones de actualización cuando se publiquen nuevas versiones de Kubernetes o de imágenes de nodo.

En este artículo se explica cómo usar perfiles de actualización automática para crear y ejecutar automáticamente ejecuciones de actualizaciones cuando Azure Kubernetes Service (AKS) publica nuevas versiones de imágenes de Kubernetes o de nodo.

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, consulte mantenimiento planeado en varios clústeres que muestra cómo las actualizaciones controlan los clústeres con ventanas de mantenimiento programadas.

Antes de empezar

  • Establezca las siguientes variables de entorno para usarlas en los comandos de la CLI de Azure:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • Instale la versión más reciente de CLI de Azure. Para la instalación o la actualización, consulte Instalación de la CLI de Azure.

  • Instale la extensión de CLI de Azure más reciente fleet . Use el az extension add comando para instalar la extensión.

    az extension add --name fleet
    

    Use el az extension update comando para actualizar a la versión más reciente de la extensión.

    az extension update --name fleet
    

Nota:

Los clústeres con grupos de agentes creados a partir de instantáneas del grupo de nodos se ven afectados de la siguiente manera en función de la opción de imagen de nodo y canal de actualización automática seleccionada:

  • Canal de imagen de nodo: la imagen de nodo se actualiza a la versión determinada por Fleet Manager. La referencia a la instantánea (creationData) se quita del grupo de agentes.
  • Canales de versión secundaria estables, rápidos o de Kubernetes de destino con la imagen de nodo establecida en:
    • Imagen coherente: la imagen de nodo se actualiza a la versión determinada por Fleet Manager. La referencia a la instantánea (creationData) se quita del grupo de agentes.
    • Imagen más reciente: el grupo de agentes mantiene su referencia a la instantánea (creationData) y la imagen del nodo no se modifica.

Para obtener más información, consulte Descripción de las actualizaciones y las instantáneas de imágenes de nodo.

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

Cree perfiles de actualización automática mediante el az fleet autoupgradeprofile create comando .

Puede deshabilitar un perfil de actualización automática incluyendo el indicador --disabled con el comando az fleet autoupgradeprofile create. Para volver a habilitar un perfil de actualización automática deshabilitada, vuelva a ejecutar el az fleet autoupgradeprofile create comando sin la --disabled marca .

Nota:

Deshabilitar un perfil de actualización automática no afecta a ninguna ejecución de actualización en curso. Sin embargo, el proceso deja de generar nuevas ejecuciones de actualización hasta que se vuelve a habilitar el perfil.

Actualizaciones del canal estable de Kubernetes

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

Actualizar clústeres de miembros uno a uno

Actualice los clústeres de miembros secuencialmente mediante el az fleet autoupgradeprofile create comando .

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

Actualizar clústeres de miembros mediante una estrategia de actualización existente

Actualice los clústeres de miembros mediante una estrategia de actualización existente. Use el comando az fleet autoupgradeprofile create con el parámetro --update-strategy-id establecido con el identificador de la estrategia de actualización existente.

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

Actualizar clústeres de miembros mediante una estrategia de actualización existente con una imagen de nodo coherente

Actualice los clústeres de miembros mediante una estrategia de actualización existente y asegúrese de que se usa la misma versión de imagen de nodo en cada región de Azure. Utilice el comando az fleet autoupgradeprofile create con el parámetro --node-image-selection establecido en Consistent. Todos los clústeres miembro ejecutan 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 Consistent

Actualice los clústeres miembro usando una estrategia de actualización existente con la imagen de nodo más reciente

Actualice los clústeres de miembros mediante una estrategia de actualización existente y asegúrese de que se usa la versión más reciente de la imagen de nodo disponible para cada región de Azure. Utilice el comando az fleet autoupgradeprofile create con el parámetro --node-image-selection establecido en Latest. Los clústeres miembro pueden ejecutar varias versiones de imágenes de nodo.

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

Actualizaciones del canal de imagen de nodo

Actualice los nodos con una imagen de máquina recién revisada que incluya correcciones de seguridad y correcciones de errores.

Actualizar imágenes de nodo una por una

Actualice las imágenes de nodo para los clústeres miembro secuencialmente mediante el az fleet autoupgradeprofile create comando .

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

Actualizar imágenes de nodo mediante una estrategia de actualización existente

Actualice las imágenes de nodo para los clústeres miembro mediante una estrategia de actualización existente. Utilice el comando az fleet autoupgradeprofile create y establezca el parámetro --update-strategy-id en el ID de la estrategia de actualización existente.

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

Actualizaciones de la versión secundaria de destino de Kubernetes

Actualice a una versión menor de Kubernetes especificada como destino mediante el parámetro --target-kubernetes-version. Proporcione la versión en el formato {major version}.{minor version} (por ejemplo, 1.33). La actualización automática de Fleet Manager actualiza automáticamente los clústeres de miembros a la versión de revisión más reciente de la versión de destino especificada cuando la revisión está disponible.

Importante

Tenga en cuenta la siguiente información al usar el canal de versión secundaria de Kubernetes de destino:

  • Debe especificar el parámetro --target-kubernetes-version. Este parámetro no es compatible con otros canales de actualización automática (Rápido, Estable, Imagen de nodo y Parches de seguridad).
  • La marca --long-term-supportde soporte a largo plazo (LTS) solo está disponible al usar el canal de versión secundaria objetivo de Kubernetes. Para otros canales, establezca esta marca en False.
  • Solo se pueden seleccionar versiones de Kubernetes de LTS (N-2) para un perfil de actualización automática con la --long-term-support bandera. Para que la actualización automática de flota siga funcionando en este escenario, asegúrese de que los clústeres de la ejecución de actualizaciones generadas estén habilitados con LTS. Los clústeres que no son LTS hacen que la ejecución de la actualización produzca un error cuando se encuentre el primer clúster que no es LTS.
  • No se puede establecer la versión de Kubernetes de destino en una versión futura de Kubernetes que AKS no ha publicado.

Actualización de clústeres de miembros a una versión secundaria específica de Kubernetes

Actualice los clústeres de miembros a una versión menor específica de Kubernetes mediante el comando az fleet autoupgradeprofile create con el parámetro --target-kubernetes-version establecido en la versión deseada. En el ejemplo siguiente se actualizan los clústeres de miembros a la versión 1.33 de Kubernetes.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

Actualización de clústeres miembros con LTS habilitado a una versión secundaria específica de Kubernetes

Actualice los clústeres miembro con LTS habilitado a una versión secundaria específica de Kubernetes mediante el comando az fleet autoupgradeprofile create, con el parámetro --target-kubernetes-version establecido en la versión deseada y la marca --long-term-support habilitada. En el ejemplo siguiente se actualizan los clústeres de miembros a la versión 1.29 de Kubernetes con LTS habilitado.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

Actualizaciones del canal de parches de seguridad

Actualice los nodos de Linux con correcciones de seguridad. Aplique las actualizaciones mediante parches en caliente cuando sea posible. De lo contrario, implemente una imagen de máquina recién revisada que contenga correcciones de seguridad.

Actualización de nodos con revisiones de seguridad de uno a uno

Actualice las imágenes de nodo para los clústeres miembro secuencialmente mediante el az fleet autoupgradeprofile create comando .

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

Actualización de nodos con revisiones de seguridad mediante una estrategia de actualización existente

Actualice las imágenes de nodo para los clústeres miembro mediante una estrategia de actualización existente. Utilice el comando az fleet autoupgradeprofile create y establezca el parámetro --update-strategy-id en el ID de la estrategia de actualización existente.

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

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

Los perfiles de actualización automática son recursos de nivel de flota. No están conectados directamente a clústeres individuales de AKS. Para determinar qué perfiles pueden actualizar los clústeres de AKS, en primer lugar, enumere los miembros de Fleet y confirme que los clústeres son miembros de la flota.

az fleet member list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --query "[].{memberName:name,clusterResourceId:clusterResourceId}" \
  --output table

Enumere todos los perfiles de actualización automática de la flota mediante el az fleet autoupgradeprofile list comando .

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

Mostrar un perfil de actualización automática específico para la flota mediante el az fleet autoupgradeprofile show comando . Revise el canal, el estado y updateStrategyId en la salida.

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

Si updateStrategyId está vacío, el perfil usa la secuencia de actualización One by one e incluye de forma secuencial los clústeres miembro de Fleet. Si updateStrategyId contiene un identificador de recurso, muestre la estrategia referenciada para revisar las fases, los grupos o los selectores de miembros que determinan qué miembros de Fleet incluyen las ejecuciones de actualización generadas.

PROFILE_STRATEGY_ID=$(az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --query updateStrategyId \
  --output tsv)

if [[ -n "$PROFILE_STRATEGY_ID" ]]; then
  az fleet updatestrategy show \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name "${PROFILE_STRATEGY_ID##*/}"
fi

Eliminación de un perfil de actualización automática

Utilice el comando az fleet autoupgradeprofile delete para eliminar un perfil de actualización automática existente. Después de ejecutar este comando, se le pedirá que confirme la eliminación. Para omitir la confirmación e eliminar inmediatamente el perfil, incluya --yes en el comando .

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

Nota:

La eliminación de un perfil de actualización automática no afecta a ninguna ejecución de actualización en curso.

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

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

  1. En Azure Portal, vaya al recurso de Azure Kubernetes Fleet Manager.

  2. En el menú del servicio, bajo Configuración, seleccione Actualización multicluster>Perfiles de actualización automática>+ Crear.

  3. En Crear un perfil de actualización automática, configure las siguientes opciones:

    • En Detalles de actualización automática:
      • Nombre del perfil de actualización automática: escriba un nombre para el perfil de actualización automática.
      • Estado: seleccione Habilitado o Deshabilitado. Los perfiles de actualización automática deshabilitados no se desencadenan cuando se publican nuevas versiones.
      • Secuencia de actualización: seleccione Fases o Una por una.
    • En Desencadenadores de actualización automática:
      • Canal: seleccione Estable.
      • Imagen de nodo: seleccione Imagen más reciente o Imagen coherente.
    • En Detalles de la estrategia:
      • Si seleccionó una secuencia de actualización mediante fases, seleccione una estrategia existente o cree una nueva.
  4. Seleccione Crear para crear el perfil de actualización automática.

    Captura de pantalla del panel Azure Kubernetes Fleet Manager de Azure Portal para crear un perfil de actualización automática mediante el canal estable.

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

Los perfiles de actualización automática son recursos de nivel de flota. No están conectados directamente a clústeres individuales de AKS. Para determinar qué perfiles pueden actualizar sus clústeres de AKS, confirme que los clústeres son miembros de Fleet y, a continuación, revise los perfiles de Fleet y sus secuencias de actualización.

  1. En Azure Portal, vaya al recurso de Azure Kubernetes Fleet Manager.
  2. En el menú de servicio, seleccione Miembros de flota y confirme que los clústeres de AKS aparecen en la lista de miembros.
  3. En Configuración, seleccione Actualización multiclúster>Perfiles de actualización automática.
  4. Seleccione un perfil de actualización automática para ver su canal, estado y secuencia de actualización.
  5. Si la secuencia de actualización es One by one, el perfil incluye los clústeres miembro de Fleet secuencialmente. Si la secuencia de actualización usa etapas, revise las etapas, los grupos y los selectores de miembros de la estrategia asociada para determinar qué miembros de la flota incluyen las ejecuciones de actualización generadas.

Eliminación de un perfil de actualización automática

  1. En Azure Portal, vaya al recurso de Azure Kubernetes Fleet Manager.
  2. En el menú del servicio, en Configuración, seleccione Actualización multicluster>Perfiles de actualización automática.
  3. Seleccione el perfil que desea eliminar y, a continuación, seleccione Eliminar> para confirmar.

Nota:

La eliminación de un perfil de actualización automática no afecta a ninguna ejecución de actualización en curso.

Validación de actualizaciones automáticas

Las actualizaciones automáticas solo se producen cuando hay nuevas imágenes de kubernetes o de nodo disponibles. Cuando se desencadena la actualización automática, se crea una ejecución de actualización vinculada, por lo que puede usar administrar la ejecución de actualización para ver los resultados de la actualización automática.

También puede comprobar las versiones existentes como línea base.

Obtenga la versión actual de Kubernetes de un clúster miembro mediante el comando az aks show con el parámetro --query para filtrar la salida por la propiedad currentKubernetesVersion.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion

Obtenga la versión actual de la imagen del nodo de un clúster miembro mediante el comando az aks show con el parámetro --query para filtrar la salida por la propiedad nodeImageVersion.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

Cuando finalice la ejecución de la actualización, puede volver a ejecutar estos comandos y ver las versiones actualizadas que se implementan.

Generación de una ejecución de actualización desde un perfil de actualización automática

Después de crear un perfil de actualización automática, es posible que pase algún tiempo antes de que una nueva versión de imagen de nodo o Kubernetes desencadene la actualización automática para crear y ejecutar una ejecución de actualización. La actualización automática permite generar una nueva ejecución de actualización en cualquier momento mediante el az fleet autoupgradeprofile generate-update-run comando . La ejecución de la actualización resultante se basa en la versión actual de la imagen de Kubernetes o del nodo publicada por AKS.

Para obtener más información sobre cómo crear una ejecución de actualización a petición desde un perfil de actualización automática, consulte Generación de una ejecución de actualización a partir de un perfil de actualización automática.