Tutorial: Migrar nós para o Linux do Azure

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

  • Remova os pools de nós existentes e adicione novos pools de nós do Linux do Azure.
  • Migração in-loco do SKU do sistema operacional (versão prévia).

Se você não tiver nenhum nó existente para migrar para o Linux do Azure, vá 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 Linux do Azure.

Pré-requisitos

  • Nos tutoriais anteriores, você criou e implantou um Host de Contêiner do Linux do Azure para clusters do AKS. Para concluir este tutorial, você precisa adicionar um pool de nós do Linux do Azure ao cluster existente. Se você ainda não tiver feito isso, comece com o Tutorial 2: Adicionar um pool de nós do Linux do Azure ao cluster existente do AKS.

    Observação

    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 o pool de nós existente.

  • Você precisa instalar a versão mais recente da CLI do Azure. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

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

  1. Adicione um novo pool de nós do Linux do Azure 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 clusters do Linux do Azure.

    az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
    
  2. Remova os nós existentes usando o comando az aks nodepool delete.

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

Migração in-loco do SKU do sistema operacional (versão prévia)

Agora você pode migrar seus pools de nós do Ubuntu existentes para o Linux do Azure 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 requer a criação de novos pools de nós.

Limitações

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 Terraform, do PowerShell ou do portal do Azure.
  • O recurso de migração de SKU do sistema operacional não pode renomear pools de nós existentes.
  • O Ubuntu e o Linux do Azure são os únicos destinos de migração de SKU do sistema operacional Linux com suporte.
  • O campo count do AgentPool não deve ser alterado durante a migração.
  • Um SKU do sistema operacional Ubuntu com UseGPUDedicatedVHD habilitado não pode executar uma migração de SKU do sistema operacional.
  • Um SKU do sistema operacional Ubuntu com CVM 20.04 habilitado não pode executar uma migração de SKU do sistema operacional.
  • Os pools de nós com o Kata habilitado não podem executar uma migração de SKU do sistema operacional.
  • Não há suporte para a migração do SKU do sistema operacional Windows.

Pré-requisitos

Instalar a extensão aks-preview

Importante

As versões prévias do recurso AKS estão disponíveis em uma base de autoatendimento e aceitação. As versões prévias são fornecidas "como estão" 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:

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

    az extension add --name aks-preview
    
  2. Atualize a extensão para garantir que você tenha a versão mais recente usando o comando az extension update.

    az extension update --name aks-preview
    

Registrar o sinalizador de recurso OSSKUMigrationPreview

  1. Registre o sinalizador de recurso OSSKUMigrationPreview em sua assinatura usando o comando az feature register.

    az feature register --namespace Microsoft.ContainerService --name OSSKUMigrationPreview
    
  2. Verifique o status do registro usando o comando az feature list.

    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/OSSKUMigrationPreview')].{Name:name,State:properties.state}"
    

    Seu resultado deve ser semelhante ao seguinte exemplo de saída:

    Name                                            State
    ----------------------------------------------  -------
    Microsoft.ContainerService/OSSKUMigrationPreview  Registered
    
  3. Atualize o registro do sinalizador de recurso OSSKUMigrationPreview usando o comando az provider register.

    az provider register --namespace Microsoft.ContainerService
    

Migrar o SKU do sistema operacional do pool de nós do Ubuntu

  • Migre o SKU do sistema operacional do pool de nós para o Linux do Azure usando o comando az aks nodepool update. Esse comando atualiza o SKU do sistema operacional para o pool de nós do Ubuntu para o Linux do Azure. 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-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
    

    Observação

    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 de SKU do sistema operacional

Depois que a migração for concluída em seus clusters de teste, você deverá verificar o seguinte para garantir uma migração bem-sucedida:

  • Se o destino de migração for o Linux do Azure, execute o comando kubectl get nodes -o wide. A saída deve mostrar CBL-Mariner/Linux como a imagem do sistema operacional e .cm2 no final da versão do kernel.
  • Execute o comando kubectl get pods -o wide -A para verificar se todos os pods e daemonsets estão em execução no novo pool de nós.
  • Execute o comando kubectl get nodes --show-labels para verificar se todos os rótulos de nó no pool de nós atualizado são o que você espera.

Dica

É recomendável monitorar a integridade do serviço por algumas semanas antes de migrar os clusters de produção.

Executar a migração de SKU do sistema operacional nos clusters de produção

  1. Atualize os modelos existentes para definir OSSKU=AzureLinux. Nos modelos do ARM, use "OSSKU: "AzureLinux" na seção agentPoolProfile. No Bicep, use osSku: "AzureLinux" na seção agentPoolProfile. Verifique se apiVersion está definido como 2023-07-01 ou posterior.
  2. Reimplante o modelo do ARM para que o cluster aplique a nova configuração OSSKU. Durante a implantação, o cluster se comporta como se estivesse fazendo uma atualização de imagem de nó. O cluster aumenta a capacidade e reinicia os nós existentes um a um na imagem mais recente do AKS do novo SKU do sistema operacional.

Reversão

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, você precisa alterar o campo SKU do sistema operacional em seu modelo e reenviar a implantação, o que dispara outra operação de atualização e restaura o pool de nós para seu SKU anterior do sistema operacional.

  • Reverta para o SKU do sistema operacional anterior usando o comando az aks nodepool update. Esse comando atualiza o SKU do sistema operacional para o pool de nós do Linux do Azure de volta para o Ubuntu.

    az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
    

Próximas etapas

Neste tutorial, você migrou nós existentes para o Linux do Azure usando um dos seguintes métodos:

  • Remova os pools de nós existentes e adicione novos pools de nós do Linux do Azure.
  • Migração in-loco do SKU do sistema operacional (versão prévia).

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