Migración de nodos existentes a Azure Container Linux (ACL) para Azure Kubernetes Service (AKS)

En este artículo, aprenderá a migrar los grupos de nodos de AKS existentes a Azure Container Linux (ACL) para AKS. Puede migrar los nodos existentes mediante uno de los métodos siguientes:

  • Migración de SKU del sistema operativo local: cambie la SKU del sistema operativo de los grupos de nodos existentes a ACL, que vuelve a crear una imagen de los nodos automáticamente.
  • Quite los grupos de nodos existentes y agregue nuevos grupos de nodos de ACL: cree nuevos grupos de nodos de ACL, mueva las cargas de trabajo y quite los grupos de nodos antiguos.

Importante

Si usa Azure Container Linux (ACL) en AKS, asegúrese de revisar las siguientes consideraciones y limitaciones:

Limitaciones de la migración local de SKU del sistema operativo

Además de las limitaciones generales de ACL, las siguientes se aplican específicamente a la migración de SKU del sistema operativo local:

  • La característica de migración del sistema operativo SKU no está disponible a través de PowerShell o Azure Portal.
  • La característica de migración de SKU del sistema operativo no admite el cambio de nombre de los grupos de nodos existentes.
  • Los grupos de nodos con UseGPUDedicatedVHD habilitado no pueden realizar una migración de SKU del sistema operativo.
  • No se admite la migración de SKU del sistema operativo Windows.

Prerrequisitos

  • Un clúster de AKS existente con al menos un grupo de nodos de Linux.
  • CLI de Azure versión 2.86.0 o posterior. Ejecute az --version para encontrar la versión. Si necesita instalar o actualizar, consulte Install CLI de Azure.
  • Se recomienda comprobar que las cargas de trabajo se ejecutan correctamente en la ACL mediante la implementación de un clúster de ACL en un entorno de desarrollo o ensayo antes de migrar clústeres de producción.
  • Asegúrese de que la característica de migración funciona en pruebas o desarrollo antes de usar el proceso en un clúster de producción.
  • Asegúrese de que los pods tienen suficiente Presupuesto de interrupciones de pods (PDB) para permitir que AKS mueva pods entre máquinas virtuales durante la migración.

Adición de grupos de nodos de ACL y eliminación de grupos de nodos existentes

  1. Agregue un nuevo grupo de nodos de ACL mediante el az aks nodepool add comando . Use --mode System para que el nuevo grupo pueda servir como grupo de agentes del sistema, lo que le permite eliminar el grupo de nodos original en el paso siguiente.

    az aks nodepool add \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <new-node-pool-name> \
        --os-sku AzureContainerLinux \
        --mode System \
        --node-count 3
    

    Ejemplo de resultado:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool",
      "name": "myNewNodePool",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Quite el grupo de nodos existente mediante el az aks nodepool delete comando .

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

Migración de SKU del sistema operativo local

Puede migrar sus grupos de nodos Linux existentes a ACL cambiando la SKU del SO del grupo de nodos, lo que hace que el clúster pase por el proceso estándar de actualización de la imagen de nodo. Este método no requiere crear nuevos grupos de nodos; en su lugar, los grupos de nodos existentes se reprovisionan automáticamente con una nueva imagen.

Migración de SKU del sistema operativo local

Importante

ACL requiere Trusted Launch. Debe incluir --enable-secure-boot y --enable-vtpm al migrar a la SKU del sistema operativo AzureContainerLinux. El tamaño de la máquina virtual (VM) del grupo de nodos también debe admitir el inicio seguro. Si el tamaño de máquina virtual actual no lo admite, debe cambiar el tamaño o volver a crear el grupo de nodos con un tamaño de máquina virtual compatible antes de migrar.

Migra la SKU del sistema operativo de tu grupo de nodos a ACL mediante el comando az aks nodepool update. Este comando desencadena una nueva imagen del grupo de nodos, actualizando la SKU del sistema operativo a AzureContainerLinux. El cambio de SKU del sistema operativo desencadena una operación de actualización inmediata, que tarda varios minutos en completarse.

az aks nodepool update \
    --resource-group <resource-group> \
    --cluster-name <cluster-name> \
    --name <existing-node-pool-name> \
    --os-sku AzureContainerLinux \
    --enable-secure-boot \
    --enable-vtpm

Ejemplo de resultado:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureContainerLinux",
  "provisioningState": "Succeeded"
}

Note

Si experimenta problemas durante la migración de la SKU del sistema operativo, puede revertir a la SKU anterior del sistema operativo.

Comprobación de la migración de SKU del sistema operativo

Tip

Se recomienda supervisar el estado del servicio durante un par de semanas antes de migrar los clústeres de producción.

Una vez completada la migración en los clústeres de prueba, se recomienda supervisar el clúster y las cargas de trabajo durante un par de semanas para confirmar que todo se ejecuta según lo previsto antes de migrar clústeres de producción. Use los siguientes comandos para comprobar la migración y supervisar el clúster:

  1. Confirme que los nuevos nodos ejecutan la ACL mediante el kubectl get nodes -o wide comando . La salida debe mostrar la imagen del sistema operativo ACL.

    kubectl get nodes -o wide
    
  2. Compruebe que todos los pods y daemonsets se ejecutan en el nuevo grupo de nodos mediante el kubectl get pods -o wide -A comando .

    kubectl get pods -o wide -A
    
  3. Compruebe que todas las etiquetas de nodo del grupo de nodos actualizado son las que espera mediante el kubectl get nodes --show-labels comando .

    kubectl get nodes --show-labels
    
  4. Compruebe la versión de la imagen del nodo mediante el az aks nodepool list comando .

    az aks nodepool list \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'
    

    Ejemplo de resultado:

    [
      {
        "name": "myNodePool",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Reversión a la SKU anterior del sistema operativo

Si experimenta problemas durante la migración de la SKU del sistema operativo, puede revertir a la SKU anterior del sistema operativo. Para ello, cambie el campo SKU del sistema operativo de nuevo a su valor anterior y vuelva a enviar la implementación, lo que inicia otra operación de actualización y reimagina el grupo de nodos con su SKU anterior del sistema operativo. Si revierte de ACL a la SKU previa del sistema operativo, el grupo de nodos usa de forma predeterminada la variante de imagen de Inicio seguro (Gen2), a menos que Inicio seguro esté deshabilitado explícitamente.

Vuelva a la SKU del sistema operativo anterior mediante el comando az aks nodepool update. En este ejemplo se revierte de ACL a Azure Linux:

az aks nodepool update \
    --resource-group <resource-group> \
    --cluster-name <cluster-name> \
    --name <existing-node-pool-name> \
    --os-sku AzureLinux

Para obtener más información sobre la ACL, consulte ¿Qué es Azure Container Linux (ACL) para Azure Kubernetes Service (AKS)?