Tutorial: Migrar nós para o Azure Linux

Neste tutorial, parte três de cinco, você migra seus nós existentes para o 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.
  • Migração de SKU do SO in-loco (visualização).

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

  • Em tutoriais anteriores, você criou e implantou um host de contêiner Linux do Azure para cluster AKS. Para concluir este tutorial, você precisa adicionar um pool de nós do Azure Linux ao cluster existente. Se você ainda não fez essa etapa e gostaria de acompanhar, comece com o Tutorial 2: Adicionar um pool de nós do Azure Linux ao seu cluster AKS existente.

    Nota

    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, veja Install Azure CLI (Instalar o Azure CLI).

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, o que o --mode System torna um pool de nós do sistema. Os pools de nós do sistema são necessários para clusters 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 az aks nodepool delete comando.

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

Migração de SKU do SO in-loco (visualização)

Agora você pode migrar seus pools de nós existentes do Ubuntu para o Azure Linux alterando a SKU do sistema operacional do pool de nós, que rola o cluster através do processo de atualização de imagem de nó padrão. 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, 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 Terraform, 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.
  • Ubuntu e Azure Linux são os únicos destinos de migração de SKU do sistema operacional Linux suportados.
  • O campo AgentPool count não deve ser alterado durante a migração.
  • 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

  • Instale a aks-preview extensão.
  • Registe o sinalizador de OSSKUMigrationPreview funcionalidades na sua subscrição.
  • 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 seus pods tenham orçamento de interrupção de pod suficiente para permitir que o AKS mova pods entre VMs durante a atualização.
  • Você precisa da CLI do Azure versão 0.5.172 ou superior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Instalar a aks-preview extensão

Importante

Os recursos de visualização do AKS estão disponíveis em uma base de autosserviço e opt-in. As visualizaçõ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 visualizações do AKS são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

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

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

    az extension update --name aks-preview
    

Registrar o sinalizador de OSSKUMigrationPreview recurso

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

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

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

    Sua saída deve ser semelhante à saída de exemplo a seguir:

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

    az provider register --namespace Microsoft.ContainerService
    

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-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
    

    Nota

    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 SO

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 CBL-Mariner/Linux como sua imagem do sistema operacional e .cm2 no final da sua versão do kernel.
  • Execute o kubectl get pods -o wide -A comando para verificar se todos os pods e daemonsets estão em execução no novo pool de nós.
  • Execute o comando para verificar se todos os rótulos de nó no pool de nós atualizado são o kubectl get nodes --show-labels esperado.

Gorjeta

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 seus modelos existentes para definir OSSKU=AzureLinuxo . Em modelos ARM, você usa "OSSKU: "AzureLinux" na agentPoolProfile seção . No Bicep, você usa osSku: "AzureLinux" na agentPoolProfile seção . Certifique-se de que o seu apiVersion está definido para 2023-07-01 ou posterior.
  2. Reimplante seu modelo ARM para o cluster para aplicar a nova OSSKU configuração. Durante essa implantação, o cluster se comporta como se estivesse fazendo 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.

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, que dispara outra operação de atualização e restaura o pool de nós para o SKU do sistema operacional anterior.

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

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

Próximos passos

Neste tutorial, você migrou 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.
  • Migração de SKU do SO in-loco (visualização).

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