Tutorial: Como migrar nodos para o Linux Azure

Neste tutorial, parte três de cinco, migra os seus nós existentes para Azure Linux. Você pode migrar seus nós existentes para o Azure Linux usando um dos seguintes métodos:

  • Remova pools de nós existentes e adicione novos pools de nós do Azure Linux.
  • Realizar uma migração de SKU no local do sistema operativo (SO).

Os comandos deste tutorial utilizam as variáveis de ambiente definidas em Tutorial 1: Criar um cluster com o Azure Linux Container Host para AKS.

Se você não tiver nenhum nó existente para migrar para o Azure Linux, pule para o próximo tutorial. Em tutoriais posteriores, você aprenderá a habilitar a telemetria e o monitoramento em seus clusters e atualizar os nós do Azure Linux.

Pré-requisitos

Note

Ao adicionar um novo pool de nós do Azure Linux, você precisa adicionar pelo menos um como --mode System. Caso contrário, o AKS não permitirá que você exclua seu pool de nós existente.

  • Você precisa da versão mais recente da CLI do Azure. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure.

Definir variáveis de ambiente

Defina as seguintes variáveis de ambiente para criar nomes de recursos únicos para cada implementação. Substitua o nome provisório <your-node-pool-name> por um nome à sua escolha. Podes, opcionalmente, adicionar um sufixo aleatório para garantir a unicidade. O nome de um pool de nós deve começar com uma letra minúscula e só pode conter caracteres alfanuméricos. Para pools de nós Linux, o comprimento deve estar entre um e 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"

Adicionar pools de nós do Azure Linux e remover pools de nós existentes

  1. Adicione um novo pool de nós do Azure Linux usando o az aks nodepool add comando. Este comando adiciona um novo pool de nós ao cluster com o sinalizador --mode System, tornando-o um pool de nós do sistema. Os grupos de nós do sistema são necessários para os clusters Linux do Azure.

    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinux
    

    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 az aks nodepool delete comando.

Migração de SKU do SO no local

Pode migrar os seus conjuntos de nós Ubuntu existentes para o Azure Linux alterando o SKU do sistema operativo do conjunto de nós, o que faz com que o cluster percorra o processo padrão de atualização da imagem dos nós. Esse novo recurso não requer a criação de novos pools de nós.

Limitações de migração de SKUs de SO no local

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, revise 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.
  • O recurso de migração de SKU do sistema operacional não consegue renomear grupos de nós existentes.
  • Ubuntu, Azure Linux e Azure Linux com OS Guard são os únicos destinos de migração de SKU do sistema operacional Linux suportados.
  • A Inicialização Confiável é necessária por padrão para o Azure Linux com o OS Guard. Precisas de ter o Trusted Launch ativado para poderes migrar para o Azure Linux com o OS Guard. Como não pode ativar o Trusted Launch em pools de nós existentes, precisa de criar um novo pool de nós com o Trusted Launch ativado e migrar as suas cargas de trabalho para esse pool de nós.
  • Os clientes que utilizam tamanhos de máquina virtual (VM) exclusivamente de Geração 1 não podem migrar para o Azure Linux com OS Guard, uma vez que não existe uma imagem de Geração 1 suportada. Neste caso, precisas de criar novos pools de nós com um tamanho de VM que suporte a Gen 2.
  • Um SKU do sistema operacional Ubuntu com UseGPUDedicatedVHD ativado não pode executar uma migração de SKU do sistema operacional.
  • Um SKU do sistema operacional Ubuntu com o CVM 20.04 habilitado não pode executar uma migração de SKU do sistema operacional.
  • Os pools de nós com Kata ativado não podem executar uma migração de SKU do sistema operacional.
  • A migração de SKU do sistema operacional Windows não é suportada.

Pré-requisitos para migração de SKU OS no local

  • Um cluster AKS existente com pelo menos um pool de nós do Ubuntu.
  • Recomendamos que você garanta que suas cargas de trabalho sejam configuradas e executadas com êxito no host de contêiner do Azure Linux antes de tentar usar o recurso de migração SKU do sistema operacional implantando um cluster Linux do Azure no dev/prod e verificando se o serviço permanece íntegro.
  • Verifique se o recurso de migração está funcionando para você em teste/desenvolvimento antes de usar o processo em um cluster de produção.
  • Certifique-se de que os seus pods têm um Orçamento de Disrupção de Pods (PDB) suficiente para permitir que o AKS mova os pods entre VMs durante a atualização.
  • Você precisa da CLI do Azure versão 2.61.0 ou superior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure.
  • Se estiveres a usar o Terraform, tens de ter a versão 3.111.0 ou superior do módulo AzureRM Terraform.

Migre o SKU do sistema operacional do seu pool de nós do Ubuntu

Migre a SKU do sistema operacional do seu pool de nós para o Azure Linux usando o az aks nodepool update comando. Este comando atualiza o SKU do sistema operacional para seu pool de nós do Ubuntu para o Azure Linux. A alteração do SKU do sistema operacional aciona 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 AzureLinux

Exemplo de saída:

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

Verificar a migração do SKU do Sistema Operativo

Quando a migração estiver concluída em seus clusters de teste, você deve verificar o seguinte para garantir uma migração bem-sucedida:

  • Se o destino da migração for o Azure Linux, execute o kubectl get nodes -o wide comando. A saída deve aparecer Microsoft Azure Linux 3.0 como sua imagem do sistema operacional e .azl3 no final da sua versão do kernel.
  • Execute o comando kubectl get pods -o wide -A para verificar se todos os pods e daemonsets estão a funcionar no novo pool de nós.
  • Execute o kubectl get nodes --show-labels comando para verificar se todos os rótulos de nó no grupo de nós atualizado correspondem ao que é esperado.

Dica

Recomendamos monitorar a integridade do serviço por algumas semanas antes de migrar os clusters de produção.

Execute a migração de SKU do sistema operacional em seus clusters de produção

  1. Atualize os seus modelos existentes para configurar OSSKU=AzureLinux. Certifique-se de que o seu apiVersion está definido para 2023-07-01 ou mais tarde.

    • Modelos ARM: Utilize "OSSKU": "AzureLinux" na secção agentPoolProfile.
    • Bicep: Use osSku: "AzureLinux" na secção agentPoolProfile.
    • Terraform: Use os_sku = "AzureLinux" na default_node_pool secção.
  2. Reimplante seu modelo ARM, Bíceps ou Terraform para o cluster para aplicar a nova OSSKU configuração. Durante esta implantação, o cluster comporta-se como se estivesse a fazer uma atualização de imagem de nó. O cluster aumenta a capacidade e, em seguida, reinicia os nós existentes, um a um, na imagem AKS mais recente do seu novo SKU do SO.

Retroceder para o SKU anterior do sistema operativo (SO)

Se você tiver problemas durante a migração do SKU do sistema operacional, poderá reverter para o SKU do sistema operacional anterior. Para fazer isso, precisa-se alterar o campo SKU do sistema operativo no seu modelo e reenviar a implementação, o que inicia outra operação de atualização e restaura o conjunto de nós para o SKU do sistema operativo anterior.

Podes voltar ao SKU anterior do teu sistema operativo usando o az aks nodepool update comando. Este comando atualiza a SKU do sistema operativo do seu pool de nós de Azure Linux para Ubuntu.

Passo seguinte

Neste tutorial, migrou os nós existentes para o Azure Linux ao remover os pools de nós existentes e adicionar novos pools de nós do Azure Linux ou ao efetuar uma migração local do SKU do sistema operativo.

No próximo tutorial, você aprenderá a habilitar a telemetria para monitorar seus clusters.