Migrar de conjuntos de disponibilidade no Serviço de Kubernetes do Azure (AKS)

Este artigo detalha como o AKS (Serviço de Kubernetes do Azure) está eliminando o suporte para VMAS (Conjuntos de Disponibilidade de Máquina Virtual) em favor de VMs (Máquinas Virtuais). É recomendável usar pools de nós de Máquina Virtual para VMs otimizadas para AKS.

Pools de nós de máquinas virtuais:

  • Permitir que as instâncias de VM sejam gerenciadas, configuradas e atualizadas centralmente.
  • Permitir um aumento ou redução do número de instâncias de máquina virtual em resposta à demanda ou a um agendamento definido.
  • Permita controles em nível de nó único e mistura de nós de tamanhos diferentes na mesma família, o que aumenta a flexibilidade e melhora a consistência.

Importante

A partir de 30 de setembro de 2025, o AKS (Serviço de Kubernetes do Azure) não dá mais suporte a Conjuntos de Disponibilidade. Clusters com Conjuntos de Disponibilidade após essa data são considerados sem suporte. Migre todas as cargas de trabalho para os pools de nós de Máquinas Virtuais antes desta data para garantir o suporte contínuo e aproveitar os recursos aprimorados de gerenciamento. Para obter mais informações sobre essa desativação, consulte o problema de desativação do GitHub. Para se manter informado sobre anúncios e atualizações, acompanhe as notas de lançamento do AKS.

Visão geral dos Conjuntos de Disponibilidade

Os conjuntos de disponibilidade são agrupamentos lógicos de máquinas virtuais (VM) que reduzem a chance de falhas correlacionadas derrubarem as VMs relacionadas ao mesmo tempo. Os conjuntos de disponibilidade colocam VMs em diferentes domínios de falha para aprimorar a confiabilidade.

Eliminação progressiva dos conjuntos de disponibilidade

A partir de 2019, não estamos mais adicionando outros recursos aos Conjuntos de Disponibilidade no AKS. Todos os recursos introduzidos desde 2019, como o Backup do AKS, não têm suporte em Conjuntos de Disponibilidade.

Migrar de Conjuntos de Disponibilidade para pools de nós de Máquinas Virtuais

Agora existe uma maneira de usar um script para migrar seu cluster AKS do uso de conjuntos de disponibilidade para pools de nós de máquinas virtuais. Esse script também atualiza automaticamente os balanceadores de carga de camada Básica em seu cluster para a camada Standard.

Importante

Esse processo também migra seu IP Básico para um IP Standard, mantendo os endereços IP de entrada associados ao balanceador de carga da mesma forma. Durante esse processo, um novo IP público é criado e associado às regras de saída do Standard Load Balancer para atender ao tráfego de saída do cluster.

Para obter mais informações e perguntas frequentes sobre a atualização do Load Balancer Básico para o Standard Load Balancer, consulte Upgrade do Load Balancer Básico no Serviço de Kubernetes do Azure.

Antes de começar

Requisitos

  • A versão mínima do Kubernetes para esse script é 1.27. Se você precisar atualizar o cluster do AKS, consulte atualizar um cluster do AKS.
  • Você precisa da versão 2.76.0 da CLI do Azure instalada.
  • Se o cluster estiver executando o Serviço de Gerenciamento de Chaves com cofre de chaves privado, o Serviço de Gerenciamento de Chaves deverá ser desabilitado durante toda a migração.
  • Se o cluster estiver usando ValidatingAdmissionWebhooks ou MutatingAdmissionWebhooks, esses webhooks devem ser desativados antes da migração. Os webhooks padrão do plano de controle não devem ser desabilitados. Por exemplo aks-node-mutating-webhook, webhook-admission-controllere aks-node-validating-webhook.

Preparando-se para a migração

  • Crie um plano de migração para o tempo de inatividade planejado.
  • Depois que a migração for iniciada, a reversão não será permitida.

Executar script de migração para migração do conjunto de disponibilidade

Nos comandos a seguir, substitua <myResourceGroup> pelo nome do seu grupo de recursos e <myAKSCluster> pelo nome do seu cluster do AKS.

  1. O comando a seguir inicia um script para migrar um cluster usando Conjuntos de Disponibilidade para pools de nós de Máquinas Virtuais usando o comando az aks update e configurando --migrate-vmas-to-vms. Esse script também atualiza o Basic Load Balancer e o Basic IP para Standard Load Balancer e Standard IP, se aplicável.

    az aks update \
      --name <myAKSCluster> \
      --resource-group <myResourceGroup> \
      --migrate-vmas-to-vms \
    
  2. Verifique se a migração foi bem-sucedida usando o comando az aks show. A saída do comando mostra os detalhes do cluster.

    az aks show \
      --name <myAKSCluster> \
      --resource-group <myResourceGroup>
    

    Uma migração bem-sucedida pode ser verificada quando os detalhes do cluster usando o comando az aks show incluem um type definido como VirtualMachines, e loadbalancerSku definido como Standard.

      "type": "VirtualMachines"
      "loadBalancerSku": "standard",
    
  3. Verifique se todos os pods e serviços estão sendo executados com êxito usando os comandos kubectl get pods e kubectl get svc.

    kubectl get svc -A \
    kubectl get pods -A
    
  4. Você pode confirmar os novos endereços IP associados às regras de saída listando os endereços IP de saída. Essa etapa é feita confirmando as IDs de recurso para os endereços IP e listando os endereços IP.

    Use o seguinte comando para obter a ID do recurso para os endereços IP de saída:

    # Get the outbound IP Resource ID
    az aks show \
      --resource-group <myResourceGroup> \
      --name <myAKSCluster> \
      --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id
    

    Use o seguinte comando para obter cada endereço IP para a ID do recurso e substituir <IPResourceID> pela ID do recurso do comando anterior:

    # get the new IP for each IP Resource ID
    az network public-ip show --ids <IPResourceID> --query ipAddress -o tsv