Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial, parte tres de cinco, migrará sus nodos existentes a Azure Linux. Puede migrar los nodos existentes a Linux en Azure mediante uno de los métodos siguientes:
- Quite los grupos de nodos existentes y agregue nuevos grupos de nodos de Linux en Azure.
- Realice una migración de SKU del sistema operativo (SO) local.
Los comandos de este tutorial usan las variables de entorno establecidas en Tutorial 1: Creación de un clúster con el host de contenedor de Linux Azure para AKS.
Si no tiene ningún nodo existente para migrar a Linux en Azure, pase al siguiente tutorial. En tutoriales posteriores, aprenderá a habilitar la telemetría y la supervisión en los clústeres y a actualizar los nodos de Linux en Azure.
Prerrequisitos
- En tutoriales anteriores, ha creado e implementado un clúster de hosts de contenedor de Linux en Azure para AKS. Para completar este tutorial, debe agregar un grupo de nodos de Linux en Azure al clúster existente. Si no ha realizado este paso y desea continuar, comience por el Tutorial 2: Incorporación de un grupo de nodos de Linux en Azure al clúster de AKS existente.
Note
Al agregar un nuevo grupo de nodos de Linux en Azure, debe agregar al menos uno como --mode System. De lo contrario, AKS no le permitirá eliminar el grupo de nodos existente.
- Necesita la versión más reciente de la CLI de Azure. Ejecute
az --versionpara encontrar la versión. Si necesita instalar o actualizar, consulte Install CLI de Azure.
Establecimiento de variables de entorno
Establezca las siguientes variables de entorno para crear nombres de recursos únicos para cada implementación. Reemplace el marcador de posición <your-node-pool-name> por un nombre de su elección. Opcionalmente, puede anexar un sufijo aleatorio para garantizar la unicidad. El nombre de un grupo de nodos debe comenzar con una letra minúscula y solo puede contener caracteres alfanuméricos. Para los grupos de nodos de Linux, la longitud debe estar entre uno y 12 caracteres.
# Set random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)
# Set node pool name
export NODE_POOL_NAME="<your-node-pool-name>$RANDOM_SUFFIX"
Adición de grupos de nodos de Linux en Azure y eliminación de grupos de nodos existentes
Agregue un nuevo grupo de nodos de Linux en Azure mediante el comando
az aks nodepool add. Este comando agrega un nuevo grupo de nodos al clúster con la marca--mode System, lo que lo convierte en un grupo de nodos del sistema. Los grupos de nodos del sistema son necesarios para los clústeres de Linux en Azure.az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxEjemplo de resultado:
{ "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool", "name": "systempool", "provisioningState": "Succeeded" }Eliminar los nodos existentes mediante el comando
az aks nodepool delete.
Migración de SKU del sistema operativo local
Puede migrar sus grupos de nodos de Ubuntu existentes a Azure Linux cambiando la SKU del sistema operativo 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. Esta nueva característica no requiere la creación de nuevos grupos de nodos.
Limitaciones de la migración local de SKU del sistema operativo
Hay varias opciones de configuración que pueden bloquear la solicitud de migración de SKU del sistema operativo. Para garantizar una migración correcta, revise las siguientes directrices y limitaciones:
- 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 puede cambiar el nombre de los grupos de nodos existentes.
- Ubuntu, Azure Linux y Azure Linux con OS Guard son los únicos destinos de migración de SKU de sistemas operativos Linux admitidos.
- Trusted Launch es necesario de forma predeterminada para Azure Linux con OS Guard. Debe tener habilitado el inicio de confianza para poder migrar a Azure Linux con OS Guard. Dado que no se puede habilitar el inicio de confianza en grupos de nodos existentes, debe crear un nuevo grupo de nodos con inicio seguro habilitado y migrar las cargas de trabajo a ese grupo de nodos.
- Los clientes que usan tamaños de máquina virtual (VM) solo de generación 1 no pueden migrar a Azure Linux con OS Guard, ya que no hay ninguna imagen compatible de generación 1. En este caso, debe crear nuevos grupos de nodos con un tamaño de máquina virtual que admita Gen 2.
- Una SKU del sistema operativo Ubuntu con
UseGPUDedicatedVHDhabilitado no puede realizar una migración de SKU del sistema operativo. - Una SKU del sistema operativo Ubuntu con CVM 20.04 habilitado no puede realizar una migración de SKU del sistema operativo.
- Los grupos de nodos con Kata habilitado no pueden realizar una migración de SKU del sistema operativo.
- No se admite la migración de SKU del sistema operativo Windows.
Requisitos previos para la migración local de SKU del SO
- Un clúster de AKS existente con al menos un grupo de nodos de Ubuntu.
- Se recomienda asegurarse de que las cargas de trabajo se configuran y se ejecutan correctamente en el host de contenedor de Linux en Azure antes de intentar usar la característica de migración de SKU del sistema operativo mediante la implementación de un clúster de Linux en Azure en desarrollo y producción y la comprobar que el servicio sigue en buen estado.
- 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 sus pods dispongan de un Pod Disruption Budget (PDB) suficiente para permitir que AKS mueva los pods entre máquinas virtuales durante la actualización.
- Necesita la versión 2.61.0 o posterior de la CLI de Azure. Ejecute
az --versionpara encontrar la versión. Si necesita instalar o actualizar, consulte Install CLI de Azure. - Si usa Terraform, debe tener la versión 3.111.0 o posterior del módulo Terraform de AzureRM.
- CLI de Azure
- plantilla ARM
- Terraform
Migración de la SKU del sistema operativo del grupo de nodos de Ubuntu
Migre la SKU del sistema operativo del grupo de nodos a Linux en Azure mediante el comando az aks nodepool update. Este comando actualiza la SKU del sistema operativo para el grupo de nodos de Ubuntu a Linux en Azure. 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 $NODE_POOL_NAME --os-sku AzureLinux
Ejemplo de resultado:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureLinux",
"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
Una vez completada la migración en los clústeres de prueba, debe comprobar lo siguiente para garantizar una migración correcta:
- Si el destino de migración es Linux en Azure, ejecute el comando
kubectl get nodes -o wide. La salida debe mostrarMicrosoft Azure Linux 3.0como la imagen del sistema operativo y.azl3al final de la versión del kernel. - Ejecute el comando
kubectl get pods -o wide -Apara comprobar que todos los pods y conjuntos de demonios se ejecutan en el nuevo grupo de nodos. - Ejecute el comando
kubectl get nodes --show-labelspara comprobar que todas las etiquetas de nodo del grupo de nodos actualizado son las que espera.
Tip
Se recomienda supervisar el estado del servicio durante un par de semanas antes de migrar los clústeres de producción.
Ejecución de la migración de SKU del sistema operativo en los clústeres de producción
Actualice las plantillas existentes para establecer
OSSKU=AzureLinux. Asegúrese de queapiVersionestá establecido en2023-07-01o posterior.-
Plantillas de ARM: Use
"OSSKU": "AzureLinux"en la secciónagentPoolProfile. -
Bicep: use
osSku: "AzureLinux"en la secciónagentPoolProfile. -
Terraform: Use
os_sku = "AzureLinux"en la seccióndefault_node_pool.
-
Plantillas de ARM: Use
Vuelva a implementar la plantilla de ARM, Bicep o Terraform para que el clúster aplique la nueva configuración
OSSKU. Durante esta implementación, el clúster se comporta como si tomara una actualización de imagen de nodo. El clúster aumenta la capacidad y, a continuación, reinicia los nodos existentes uno por uno en la imagen de AKS más reciente desde la nueva SKU del sistema operativo.
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, debe cambiar el campo de SKU del sistema operativo en la plantilla y volver a enviar la implementación, lo que desencadena otra operación de actualización y restaura el grupo de nodos a su SKU anterior del sistema operativo.
Puede revertir a la SKU del sistema operativo anterior mediante el comando az aks nodepool update. Este comando actualiza la SKU del sistema operativo para el grupo de nodos de Linux en Azure de nuevo a Ubuntu.
Paso siguiente
En este tutorial, ha migrado los nodos existentes a Azure Linux quitando los grupos de nodos existentes y agregando nuevos grupos de nodos de Linux Azure o realizando una migración de SKU del sistema operativo local.
En el siguiente tutorial, aprenderá a habilitar la telemetría para supervisar los clústeres.