Compartir a través de


Actualizaciones de imágenes de nodo para el aprovisionamiento automático de nodos (NAP) en Azure Kubernetes Service (AKS)

En este artículo se proporciona información general sobre las actualizaciones de imágenes de nodo para el aprovisionamiento automático de nodos (NAP) en Azure Kubernetes Service (AKS), lo que incluye cómo funciona, ventanas de mantenimiento recomendadas y ejemplos para empezar.

¿Cómo funcionan las actualizaciones de imágenes de nodo para los nodos de aprovisionamiento automático de nodos?

De forma predeterminada, las máquinas virtuales (VM) del grupo de nodos NAP se actualizan automáticamente cuando hay disponible una nueva versión de imagen. Puede configurar una ventana de mantenimiento de programación de actualización del sistema operativo (SO) administrado por AKS para controlar cuándo se seleccionan y aplican nuevas imágenes a los nodos NAP, o bien usar presupuestos de disrupción de nodos y presupuestos de disrupción de pods de Karpenter para controlar cómo y cuándo se produce la interrupción durante las actualizaciones.

Nota:

NAP obliga a que se recoja la versión de imagen más reciente si la versión de imagen de nodo existente es anterior a 90 días. Esto omite cualquier ventana de mantenimiento existente.

Períodos de mantenimiento para la actualización del sistema operativo del nodo para NAP

Puede usar la característica de mantenimiento planeado de AKS con un canal de actualización automática del sistema operativo de nodo para configurar una aksManagedNodeOSUpgradeSchedule ventana de mantenimiento que controla cuándo realizar revisiones de seguridad del sistema operativo de nodo programadas por el canal de actualización automática del sistema operativo del nodo designado.

Comportamiento y consideraciones sobre la ventana de mantenimiento de actualización del sistema operativo del nodo

Tenga en cuenta la siguiente información al configurar una ventana de mantenimiento de actualización del sistema operativo de nodo para NAP:

  • La aksManagedNodeOSUpgradeSchedule configuración de mantenimiento determina la ventana durante la cual NAP recoge una nueva imagen. Esta configuración no determina necesariamente cuándo se interrumpen los nodos existentes.
  • El mecanismo de actualización y los criterios de decisión son específicos de NAP/Karpenter y se evalúan mediante la lógica de desfase de NAP. NAP respeta los presupuestos de disrupción de nodos y presupuestos de disrupción de pods de Karpenter. Para obtener más información sobre el desfase, consulte la documentación del desfase de Karpenter.
  • Estas decisiones de actualización de NAP son independientes del clúster NodeImage y los canales de SecurityPatch. Sin embargo, la configuración de mantenimiento aksManagedNodeOSUpgradeSchedule también las aplica.
  • Se recomienda usar una ventana de mantenimiento de cuatro horas o más para una operación confiable.
  • Si no existe ninguna configuración de mantenimiento, AKS podría usar una programación predeterminada para captar nuevas imágenes, lo que puede hacer que las imágenes se capten en momentos inesperados. Puede evitar tiempos inesperados de nuevas imágenes y actualizaciones definiendo un elemento explícito aksManagedNodeOSUpgradeSchedule.
  • Permita al menos 30 minutos entre crear o actualizar una configuración de mantenimiento y la hora de inicio programada para asegurarse de que AKS tiene tiempo para conciliar la nueva configuración.

Se recomienda el siguiente patrón de programación para los nodos administrados por NAP:

  • Cadencia semanal: recomendado para implementaciones rutinarias de imágenes de nodo (por ejemplo: Cada semana el domingo).

Ejemplo de programación de mantenimiento del sistema operativo de nodo

En las secciones siguientes se muestra cómo crear una ventana de mantenimiento semanal para los nodos administrados por NAP mediante la CLI de Azure y un archivo de configuración JSON y cómo actualizar, ver, enumerar y eliminar la configuración de mantenimiento.

Creación de una configuración de mantenimiento

  1. Cree un archivo JSON denominado nodeosMaintenance.json con una ventana de mantenimiento semanal (por ejemplo: Domingo a las 01:00 UTC durante 4 horas).

    {
      "properties": {
        "maintenanceWindow": {
          "durationHours": 4,
          "schedule": {
            "weekly": {
              "intervalWeeks": 1,
              "dayOfWeek": "Sunday"
            }
          },
          "startDate": "2025-01-01",
          "startTime": "01:00",
          "utcOffset": "+00:00"
        }
      }
    }
    
  2. Agregue la configuración de mantenimiento al clúster mediante el az aks maintenanceconfiguration add comando .

    az aks maintenanceconfiguration add \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    

Actualizar, ver, enumerar o eliminar una configuración de mantenimiento

Puede usar los siguientes comandos para actualizar, ver, enumerar o eliminar una configuración de mantenimiento para los nodos administrados por NAP:

  • Actualice una configuración de mantenimiento modificando el archivo JSON y ejecutando el az aks maintenanceconfiguration update comando .

    az aks maintenanceconfiguration update \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    
  • Vea los detalles de una configuración de mantenimiento mediante el az aks maintenanceconfiguration show comando .

    az aks maintenanceconfiguration show \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    
  • Enumere todas las configuraciones de mantenimiento del clúster mediante el az aks maintenanceconfiguration list comando .

    az aks maintenanceconfiguration list \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME
    
  • Elimine una configuración de mantenimiento mediante el az aks maintenanceconfiguration delete comando .

    az aks maintenanceconfiguration delete \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    

Para obtener detalles completos, ejemplos y escenarios avanzados, consulte Uso del mantenimiento planeado para programar ventanas de mantenimiento para el clúster de AKS.

presupuestos de disrupción de nodos y presupuestos de disrupción de pods de Karpenter para NAP

Para obtener más información sobre cómo configurar los presupuestos de disrupción de nodos y presupuestos de disrupción de pods de Karpenter para NAP, consulte los siguientes recursos de la documentación oficial de Karpenter:

Pasos siguientes

Para obtener más información sobre el aprovisionamiento automático de nodos en AKS, consulte los siguientes artículos: