Compartir vía


Actualización de imágenes de nodos de Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) proporciona regularmente nuevas imágenes de nodo, por lo que resulta conveniente actualizar las imágenes de nodo con frecuencia para usar las características más recientes de AKS. Las imágenes de nodo de Linux se actualizan semanalmente, mientras que las de Windows se actualizan mensualmente. Los anuncios de actualización de imágenes se incluyen en las notas de la versión de AKS y pueden tardar hasta una semana en implementarse en todas las regiones. También puede realizar actualizaciones de imágenes de nodo automáticamente y programarlas mediante el mantenimiento planeado. Para más información, vea Actualización automática de imágenes de nodo.

En este artículo se muestra cómo actualizar las imágenes de nodo de un clúster de AKS y cómo actualizar las imágenes de grupo de nodos sin actualizar la versión de Kubernetes. Para obtener información sobre la actualización de la versión del clúster de Kubernetes, vea Actualización de un clúster de AKS.

Nota

El clúster de AKS debe usar conjuntos de escalado de máquinas virtuales para los nodos.

No es posible cambiar a una versión anterior de imagen de nodo (por ejemplo , AKSUbuntu-2204 a AKSUbuntu-1804 o AKSUbuntu-2204-202308.01.0 a AKSUbuntu-2204-202307.27.0).

Comprobar las actualizaciones de imágenes de nodo disponibles

  1. Compruebe si hay actualizaciones de imágenes de nodo disponibles mediante el comando az aks nodepool get-upgrades.

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. En la salida, busque y anote el valor latestNodeImageVersion. Este valor es la versión más reciente de la imagen de nodo disponible para el grupo de nodos.

  3. Compruebe la versión actual de su imagen de nodo para compararla con la última versión mediante el comando az aks nodepool show.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. Si el valor nodeImageVersion es diferente de latestNodeImageVersion, puede actualizar la imagen del nodo.

Actualización de todas las imágenes de nodos de todos los grupos de nodos

  1. Actualice todas las imágenes de nodo de todos los grupos de nodos del clúster mediante el comando az aks upgrade con la marca --node-image-only.

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. Puede comprobar el estado de las imágenes de nodo mediante el comando kubectl get nodes.

    Nota:

    Este comando puede diferir ligeramente en función del shell que use. Para obtener más información sobre los entornos de Windows o PowerShell consulte la documentación de JSONPath de Kubernetes.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Una vez completada la actualización, use el comando az aks show para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion.

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

Actualización de un grupo de nodos específico

  1. Actualice la imagen del sistema operativo de un grupo de nodos sin realizar una actualización del clúster de Kubernetes, utilizando el comando az aks nodepool upgrade con la marca --node-image-only.

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. Puede comprobar el estado de las imágenes de nodo con el comando kubectl get nodes.

    Nota

    Este comando puede diferir ligeramente en función del shell que use. Para obtener más información sobre los entornos de Windows o PowerShell consulte la documentación de JSONPath de Kubernetes.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Una vez completada la actualización, use el comando az aks nodepool show para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Actualización de imágenes de nodo con sobrecarga de nodos

Para acelerar el proceso de actualización de la imagen de nodo, puede actualizar las imágenes de nodo mediante un valor de sobrecarga de nodo personalizable. De forma predeterminada, AKS usa un nodo adicional para configurar las actualizaciones.

  1. Actualice las imágenes de nodo con el aumento de nodos mediante el comando az aks nodepool update con la marca --max-surge para configurar el número de nodos usados para las actualizaciones.

    Nota:

    Para obtener más información sobre las ventajas e inconvenientes de varias configuraciones de --max-surge, consulte --max-surge.

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. Puede comprobar el estado de las imágenes de nodo con el comando kubectl get nodes.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Obtenga los detalles actualizados del grupo de nodos mediante az aks nodepool show para obtener los detalles actualizados del grupo de nodos. La imagen del nodo actual se muestra en la propiedad nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Pasos siguientes