Tutorial: Migrar nós para o Azure Linux com o OS Guard (versão prévia)

Note

Azure Linux com o SO Guard (versão prévia) está sendo substituído por Azure ACL (Container Linux).

Azure Container Linux é o sistema operacional (SO) Linux de longo prazo, imutável e otimizado para contêineres do AKS (Serviço de Kubernetes do Azure). Ele fornece um sistema operacional de host seguro, mínimo e operacionalmente consistente projetado para executar cargas de trabalho em contêineres em escala.

Para obter mais informações, consulte a visão geral Azure ACL (Container Linux).

Neste tutorial, parte 3 de cinco, você migrará seus nós existentes para Azure Linux com o OS Guard. Você pode migrar seus nós existentes usando um dos seguintes métodos:

  • Remova os pools de nós existentes e adicione novos pools de nós do OS Guard.
  • Realize uma migração local de SKU do sistema operacional (SO).

Se você não tiver nenhum nó existente para migrá-lo, vá para o próximo tutorial. Em tutoriais posteriores, você aprenderá a habilitar a telemetria e o monitoramento em seus clusters e atualizar o Azure Linux com nós do OS Guard.

Azure Linux com considerações e limitações sobre o OS Guard

Antes de começar, examine as seguintes considerações e limitações para o Azure Linux com o OS Guard (versão prévia):

Pré-requisitos

Instalar a extensão aks-preview CLI do Azure

Importante

As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Instale a extensão aks-preview usando o comando az extension add.

az extension add --name aks-preview

Atualize para a última versão da extensão usando o comando az extension update.

az extension update --name aks-preview

Registrar o sinalizador de recurso AzureLinuxOSGuardPreview

  1. Registre o sinalizador de recurso AzureLinuxOSGuardPreview usando o comando az feature register.

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

    Demora alguns minutos para o status mostrar Registrado.

  2. Verifique o status do registro usando o comando az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    ``
    
    
  3. Quando o status reflete Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Adicionar Azure Linux com grupos de nós protegidos pelo OS Guard e remover grupos de nós existentes.

  1. Adicione um novo Azure Linux com um pool de nós do OS Guard usando o comando az aks nodepool add. Esse comando adiciona um novo pool de nós ao cluster com o sinalizador --mode System, o que o torna um pool de nós do sistema. Os pools de nós do sistema são necessários para os clusters do Azure Linux com proteção de SO.

    # 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
    

    Exemplo de saída:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Remova os nós existentes usando o comando az aks nodepool delete.

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

Migração in-loco do SKU do sistema operacional

Limitações da migração in-loco do SKU do sistema operacional

Há várias configurações que podem bloquear a solicitação de migração de SKU do sistema operacional. Para garantir uma migração bem-sucedida, examine as seguintes diretrizes e limitações:

  • O recurso de migração de SKU do sistema operacional não está disponível por meio do PowerShell ou do portal do Azure. Ao usar o recurso de migração de SKU do SO com o Azure Linux com OS Guard (Preview), o recurso não está disponível por meio do Terraform, do PowerShell ou do portal do Azure.
  • O recurso de migração de SKU do sistema operacional não dá suporte à renomeação de pools de nós existentes.
  • O Ubuntu, o Azure Linux e o Linux do Azure com o OS Guard são os únicos destinos de migração de SKU do sistema operacional Linux com suporte.
  • O Início Confiável é exigido por padrão para o Azure Linux com o OS Guard. Você precisa ter o Trusted Launch habilitado para migrar para o Linux do Azure com o OS Guard. Isso pode exigir a criação de pools de nós.
  • O FIPS é necessário ao habilitar o Linux do Azure com o OS Guard. Se você não estiver usando uma imagem FIPS no momento, poderá incluir --enable-fips no comando de atualização do pool de nós.
  • Não há suporte para VMs (máquinas virtuais) de geração 1.
  • Um SKU do sistema operacional Ubuntu com UseGPUDedicatedVHD habilitado não pode executar uma migração de SKU do sistema operacional.
  • Não há suporte para CVMs (Máquinas Virtuais Confidenciais).
  • Não há suporte para o Pod Sandboxing.
  • Não há suporte para a migração do SKU do sistema operacional Windows.

Pré-requisitos para a migração de SKU do sistema operacional no local

  • Um cluster do AKS existente com, pelo menos, um pool de nós do Linux no Azure.
  • É recomendável garantir que suas cargas de trabalho configurem e executem com êxito no host de contêiner do Azure Linux com o OS Guard antes de tentar usar o recurso de migração de SKU do sistema operacional implantando um Linux do Azure com o cluster do OS Guard em desenvolvimento/prod e verificando se seu serviço permanece íntegro.
  • Verifique se o recurso de migração está funcionando para você no teste/desenvolvimento antes de usar o processo em um cluster de produção.
  • Verifique se os pods têm Orçamento de Interrupção de Pod (PDB) suficiente para permitir que o AKS mova os pods entre as VMs durante a atualização.
  • Você precisa da versão 2.61.0 ou posterior da CLI do Azure. Use o az version comando para localizar a versão. Para atualizar para a versão mais recente, use o az upgrade comando.

Migrar a SKU do sistema operacional do pool de nós do Host de Contêiner do Linux do Azure para o Azure Linux com proteção de SO

Você pode migrar seus pools de nós do Ubuntu ou do Linux do Azure existentes para o Azure Linux com proteção de SO alterando o SKU do sistema operacional do pool de nós, o que aciona o processo padrão de atualização da imagem do nó no cluster. Esse novo recurso não exige a criação de pools de nós, ao contrário, os pools de nós existentes terão a imagem recriada automaticamente.

Migre o SKU do sistema operacional do pool de nós para o Azure Linux com proteção de SO usando o comando az aks nodepool update. Esse comando dispara uma recriação de imagem do pool de nós, atualizando o SKU do sistema operacional do pool de nós do Linux do Azure para o Azure Linux com proteção de SO. A alteração do SKU do sistema operacional dispara uma operação de atualização imediata, que leva vários minutos para ser concluída.

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

Exemplo de saída:

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

Note

Se você tiver problemas durante a migração do SKU do sistema operacional, poderá reverter para o SKU do sistema operacional anterior.