Tutorial: Migración de nodos a Azure Linux con OS Guard (versión preliminar)

Note

Azure Linux con OS Guard (versión preliminar) se reemplaza por Azure Container Linux (ACL).

Azure Container Linux es el sistema operativo Linux optimizado para contenedores a largo plazo y inmutable para Azure Kubernetes Service (AKS). Proporciona un sistema operativo host seguro, mínimo y coherente de forma operativa diseñado para ejecutar cargas de trabajo en contenedor a escala.

Para obtener más información, consulte la introducción Azure Container Linux (ACL).

En este tutorial, la tercera de cinco partes, migrará sus nodos existentes a Azure Linux con OS Guard. Puede migrar los nodos existentes mediante uno de los métodos siguientes:

  • Quite los grupos de nodos existentes y agregue nuevos grupos de nodos de OS Guard.
  • Realice una migración de SKU del sistema operativo (SO) local.

Si no tiene ningún nodo existente para migrar, vaya al siguiente tutorial. En tutoriales posteriores, aprenderá a habilitar la telemetría y la supervisión en los clústeres y a actualizar Azure Linux con nodos de OS Guard.

Azure Linux con consideraciones y limitaciones de OS Guard

Antes de empezar, revise las siguientes consideraciones y limitaciones para Azure Linux con OS Guard (versión preliminar):

Prerrequisitos

Instalación de la extensión aks-preview CLI de Azure

Importante

Las características en versión preliminar de AKS están disponibles en modalidad de autoservicio y previa suscripción. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

Instale la extensión aks-preview mediante el comando az extension add.

az extension add --name aks-preview

Actualiza a la última versión de la extensión mediante el comando az extension update.

az extension update --name aks-preview

Registro de la marca de característica AzureLinuxOSGuardPreview

  1. Registre la marca de características de AzureLinuxOSGuardPreview mediante el comando az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    Tarda unos minutos en que el estado muestre Registrado.

  2. Comprobar el estado del registro mediante el comando az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    ``
    
    
  3. Cuando el estado refleje Registrado, actualice el registro del Microsoft.ContainerService proveedor de recursos mediante el az provider register comando .

    az provider register --namespace "Microsoft.ContainerService"
    

Adición de Azure Linux con grupos de nodos de OS Guard y eliminación de grupos de nodos existentes

  1. Agregue una nueva instancia de Azure Linux con el grupo de nodos de OS Guard mediante el az aks nodepool add comando . 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 Azure Linux con clústeres de OS Guard.

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    
    # Add a new Azure Linux with OS Guard node pool
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Ejemplo de resultado:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Eliminar los nodos existentes mediante el comando az aks nodepool delete.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME 
    

Migración de SKU del sistema operativo local

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

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. Cuando se usa la característica de migración de SKU del sistema operativo con Azure Linux con protección de sistema operativo (versión preliminar), no está disponible a través de Terraform, 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.
  • 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 migrar a Azure Linux con OS Guard. Esto puede requerir la creación de nuevos grupos de nodos.
  • Se requiere FIPS al habilitar Azure Linux con OS Guard. Si actualmente no usa una imagen FIPS, puede incluir --enable-fips en el comando de actualización del grupo de nodos.
  • No se admiten máquinas virtuales (VM) gen 1.
  • Una SKU del sistema operativo Ubuntu con UseGPUDedicatedVHD habilitado no puede realizar una migración de SKU del sistema operativo.
  • No se admiten máquinas virtuales confidenciales (CVM).
  • No se admite el espacio aislado de pods.
  • No se admite la migración de SKU del sistema operativo Windows.

Requisitos previos para la migración de SKU del sistema operativo local

  • Un clúster de AKS existente con al menos un grupo de nodos de Linux de Azure.
  • Se recomienda asegurarse de que las cargas de trabajo se configuran y ejecutan correctamente en Azure Linux con el host de contenedor de OS Guard antes de intentar usar la característica de migración de SKU del sistema operativo mediante la implementación de un clúster de Azure Linux con OS Guard en desarrollo/prod y la comprobación de 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. Use el az version comando para buscar la versión. Para actualizar a la versión más reciente, use el az upgrade comando .

Migrar la SKU del sistema operativo de la pila de nodos del host de contenedor de Azure Linux a Azure Linux con OS Guard

Puede migrar sus grupos de nodos de Ubuntu o Azure Linux existentes a Azure Linux con OS Guard cambiando la SKU del sistema operativo del grupo de nodos, lo que actualiza el clúster a través del proceso estándar de actualización de imágenes de nodo. Esta nueva característica no requiere la creación de nuevos pools de nodos; en su lugar, los pools de nodos existentes se reemagen automáticamente.

Migre la SKU del sistema operativo del grupo de nodos a Azure Linux con OS Guard mediante el az aks nodepool update comando . Este comando desencadena una nueva imagen del grupo de nodos, actualizando la SKU del sistema operativo del grupo de nodos de Azure Linux a Azure Linux con OS Guard. 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 AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm

Ejemplo de resultado:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureLinuxOSGuard",
  "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.