Migrar para o Serviço Kubernetes do Azure (AKS)

Para ajudá-lo a planejar e executar uma migração bem-sucedida para o Serviço Kubernetes do Azure (AKS), este guia fornece detalhes para a configuração atual recomendada do AKS. Embora este artigo não abranja todos os cenários, ele contém links para informações mais detalhadas para planejar uma migração bem-sucedida.

Neste artigo, resumimos os detalhes da migração para:

  • Contentorização de aplicações através do Azure Migrate
  • AKS com balanceador de carga padrão e conjuntos de dimensionamento de máquina virtual
  • Serviços do Azure anexados existentes
  • Garantir quotas válidas
  • Alta disponibilidade e continuidade de negócios
  • Considerações para aplicativos sem monitoração de estado
  • Considerações para aplicativos com monitoração de estado
  • Implantação da configuração do cluster

Nota

Dependendo do cenário, as seguintes ferramentas de código aberto podem ajudar na migração:

Antes de começar

  • Verifique se a versão de destino do Kubernetes está dentro da janela suportada pelo AKS. As versões mais antigas podem não estar dentro do intervalo suportado e requerem uma atualização de versão para suporte AKS. Para obter mais informações, consulte Versões do Kubernetes suportadas pelo AKS.
  • Se você estiver migrando para uma versão mais recente do Kubernetes, revise a política de suporte de distorção de versão e versão do Kubernetes.

Uma prática importante que você deve incluir como parte do seu processo de migração é lembrar-se de seguir padrões de implantação e teste comumente usados. Testar seu aplicativo antes da implantação é uma etapa importante para garantir sua qualidade, funcionalidade e compatibilidade com o ambiente de destino. Ele pode ajudá-lo a identificar e corrigir quaisquer erros, bugs ou problemas que possam afetar o desempenho, a segurança ou a usabilidade do aplicativo ou da infraestrutura subjacente.

Use o Azure Migrate para migrar seus aplicativos para o AKS

O Azure Migrate oferece uma plataforma unificada para avaliar e migrar para servidores, infraestrutura, aplicativos e dados locais do Azure. Para o AKS, você pode usar o Azure Migrate para as seguintes tarefas:

AKS com balanceador de carga padrão e conjuntos de dimensionamento de máquina virtual

O AKS é um serviço gerenciado que oferece recursos exclusivos com menor sobrecarga de gerenciamento. Como o AKS é um serviço gerenciado, você deve selecionar entre um conjunto de regiões suportadas pelo AKS. Talvez seja necessário modificar seus aplicativos existentes para mantê-los íntegros no plano de controle gerenciado pelo AKS durante a transição do cluster existente para o AKS.

Recomendamos o uso de clusters AKS apoiados por Conjuntos de Escala de Máquina Virtual e pelo Balanceador de Carga Padrão do Azure para garantir que você obtenha os seguintes recursos:

Os clusters AKS apoiados por conjuntos de disponibilidade de máquinas virtuais não têm suporte para muitos desses recursos.

Criar um cluster AKS com o Balanceador de Carga Padrão e Conjuntos de Dimensionamento de Máquina Virtual

O exemplo a seguir cria um cluster AKS com pool de nó único apoiado por um conjunto de escala de máquina virtual (VM). Ele habilita o autoscaler de cluster no pool de nós para o cluster e define um mínimo de um e um máximo de três nós.

  1. Crie um grupo de recursos usando o az group create comando.

    az group create --name myResourceGroup --location eastus
    
  2. Crie um cluster AKS usando o az aks create comando.

    az aks create \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --node-count 1 \
      --vm-set-type VirtualMachineScaleSets \
      --load-balancer-sku standard \
      --enable-cluster-autoscaler \
      --min-count 1 \
      --max-count 3
    

Serviços do Azure anexados existentes

Ao migrar clusters, você pode ter anexado serviços externos do Azure. Embora os serviços a seguir não exijam recriação de recursos, eles exigem a atualização de conexões de clusters anteriores para novos para manter a funcionalidade.

  • Registo de Contentores do Azure
  • Log Analytics
  • Application Insights
  • Gestor de Tráfego
  • Conta de Armazenamento
  • Bases de Dados Externas

Garantir quotas válidas

Como outras VMs são implantadas em sua assinatura durante a migração, você deve verificar se suas cotas e limites são suficientes para esses recursos. Se necessário, solicite um aumento na cota de vCPU.

Talvez seja necessário solicitar um aumento das cotas de rede para garantir que não esgote os IPs. Para obter mais informações, consulte Rede e intervalos de IP para AKS.

Para obter mais informações, consulte Limites de assinatura e serviço do Azure. Para verificar as suas quotas atuais, no portal do Azure, aceda à folha subscrições, selecione a sua subscrição e, em seguida, selecione Utilização + quotas.

Alta disponibilidade e continuidade de negócios

Se seu aplicativo não puder lidar com o tempo de inatividade, você precisará seguir as práticas recomendadas para cenários de migração de alta disponibilidade. Leia mais sobre Práticas recomendadas para planejamento complexo de continuidade de negócios, recuperação de desastres e maximização do tempo de atividade no Serviço Kubernetes do Azure (AKS).

Para aplicativos complexos, você normalmente migra ao longo do tempo em vez de todos de uma vez, o que significa que os ambientes antigos e novos podem precisar se comunicar pela rede. Os aplicativos que anteriormente usavam ClusterIP serviços para se comunicar podem precisar ser expostos como tipo LoadBalancer e protegidos adequadamente.

Para concluir a migração, você deseja apontar os clientes para os novos serviços executados no AKS. Recomendamos que você redirecione o tráfego atualizando o DNS para apontar para o balanceador de carga sentado na frente do cluster AKS.

O Azure Traffic Manager pode direcionar os clientes para o cluster e a instância do aplicativo Kubernetes desejados. O Gerenciador de Tráfego é um balanceador de carga de tráfego baseado em DNS que pode distribuir o tráfego de rede entre regiões. Para obter o melhor desempenho e redundância, direcione todo o tráfego de aplicativos através do Gerenciador de Tráfego antes que ele vá para o cluster AKS.

Em uma implantação de vários clusters, os clientes devem se conectar a um nome DNS do Gerenciador de Tráfego que aponte para os serviços em cada cluster AKS. Defina esses serviços usando pontos de extremidade do Gerenciador de Tráfego. Cada ponto de extremidade é o IP do balanceador de carga de serviço. Use essa configuração para direcionar o tráfego de rede do ponto de extremidade do Gerenciador de Tráfego em uma região para o ponto de extremidade em uma região diferente.

AKS with Traffic Manager

O Azure Front Door Service é outra opção para rotear tráfego para clusters AKS. Com o Azure Front Door Service, você pode definir, gerenciar e monitorar o roteamento global para seu tráfego da Web otimizando para obter o melhor desempenho e failover global instantâneo para alta disponibilidade.

Considerações para aplicativos sem monitoração de estado

A migração de aplicativos sem estado envolve as seguintes etapas:

  1. Aplique suas definições de recurso (YAML ou Helm) ao novo cluster.
  2. Certifique-se de que tudo funciona como esperado.
  3. Redirecionar o tráfego para ativar o novo cluster.

Considerações para aplicativos com monitoração de estado

Planeje cuidadosamente sua migração de aplicativos com monitoração de estado para evitar perda de dados ou tempo de inatividade inesperado.

Ficheiros do Azure

Ao contrário dos discos, os Arquivos do Azure podem ser montados em vários hosts simultaneamente. No cluster AKS, o Azure e o Kubernetes não impedem que você crie um pod que o cluster AKS ainda usa. Para evitar perda de dados e comportamento inesperado, certifique-se de que os clusters não gravem simultaneamente nos mesmos arquivos.

Se seu aplicativo puder hospedar várias réplicas que apontem para o mesmo compartilhamento de arquivos, siga as etapas de migração sem estado e implante suas definições de YAML no novo cluster.

Caso contrário, uma possível abordagem de migração envolve as seguintes etapas:

  1. Valide se seu aplicativo está funcionando corretamente.
  2. Aponte o seu tráfego em tempo real para o seu novo cluster AKS.
  3. Desconecte o cluster antigo.

Se quiser começar com um compartilhamento vazio e fazer uma cópia dos dados de origem, você pode usar o az storage file copy comando para migrar seus dados.

Migração de volumes persistentes

Se você estiver migrando volumes persistentes existentes para o AKS, geralmente siga estas etapas:

  1. Desativar gravações no aplicativo.
    • Esta etapa é opcional e requer tempo de inatividade.
  2. Tire instantâneos dos discos.
  3. Crie novos discos gerenciados a partir dos snapshots.
  4. Crie volumes persistentes no AKS.
  5. Atualize as especificações do pod para usar volumes existentes em vez de PersistentVolumeClaims (provisionamento estático).
  6. Implante seu aplicativo no AKS.
  7. Valide se seu aplicativo está funcionando corretamente.
  8. Aponte o seu tráfego em tempo real para o seu novo cluster AKS.

Importante

Se você optar por não desativar as gravações, precisará replicar dados para a nova implantação. Caso contrário, você perderá os dados que foram gravados depois de tirar os instantâneos de disco.

As seguintes ferramentas de código aberto podem ajudá-lo a criar discos gerenciados e migrar volumes entre clusters Kubernetes:

  • A extensão Azure CLI Disk Copy copia e converte discos entre grupos de recursos e regiões do Azure.
  • A extensão CLI do Kube do Azure enumera volumes do ACS Kubernetes e os migra para um cluster AKS.

Implantação da configuração do cluster

Recomendamos que você use seu pipeline de Integração Contínua (CI) e Entrega Contínua (CD) existentes para implantar uma configuração em boas condições no AKS. Você pode usar o Azure Pipelines para criar e implantar seus aplicativos no AKS. Clone suas tarefas de implantação existentes e garanta kubeconfig pontos para o novo cluster AKS.

Se isso não for possível, exporte as definições de recursos do cluster Kubernetes existente e aplique-as ao AKS. Você pode usar kubectl para exportar objetos. Por exemplo:

kubectl get deployment -o yaml > deployments.yaml

Certifique-se de examinar a saída e remover quaisquer campos de dados em tempo real desnecessários.

Movendo recursos existentes para outra região

Você pode querer mover seu cluster AKS para uma região diferente suportada pelo AKS. Recomendamos que você crie um novo cluster na outra região e, em seguida, implante seus recursos e aplicativos no novo cluster.

Se você tiver algum serviço em execução no cluster AKS, precisará instalar e configurar esses serviços no cluster na nova região.

Neste artigo, resumimos os detalhes da migração para:

  • Contentorização de aplicações através do Azure Migrate
  • AKS com balanceador de carga padrão e conjuntos de dimensionamento de máquina virtual
  • Serviços do Azure anexados existentes
  • Garantir quotas válidas
  • Alta disponibilidade e continuidade de negócios
  • Considerações para aplicativos sem monitoração de estado
  • Considerações para aplicativos com monitoração de estado
  • Implantação da configuração do cluster