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

Para ajudar você a planejar e executar uma migração bem-sucedida para o AKS, este guia fornece detalhes sobre a configuração atual de AKS recomendada. Embora este artigo não cubra todos os cenários, ele contém links para informações mais detalhadas para o planejamento de uma migração bem-sucedida.

Neste artigo, resumimos detalhes de migração para:

  • Conteinerização de aplicativos por meio de Migrações para Azure
  • AKS com o Azure Load Balancer (Standard) e Conjuntos de Dimensionamento de Máquinas Virtuais
  • Serviços do Azure anexados existentes
  • Garantir cotas válidas
  • Alta disponibilidade e continuidade dos negócios
  • Considerações para aplicativos sem estado
  • Considerações para aplicativos com estado
  • Implantação da sua configuração de cluster

Observação

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

Antes de começar

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

Migrar seus aplicativos para o AKS usando as Migrações para Azure

As Migrações para Azure oferecem uma plataforma unificada para avaliar e migrar para o Azure os servidores, a infraestrutura, os aplicativos e os dados locais. No AKS, você pode usar as Migrações para Azure para realizar as seguintes tarefas:

AKS com Conjuntos de Dimensionamento de Máquinas Virtuais e Standard Load Balancer

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 do AKS durante a transição do cluster atual para o AKS.

Recomendamos o uso de clusters do AKS com suporte dos Conjuntos de Dimensionamento de Máquinas Virtuais e do Load Balancer (Standard) para garantir que você obtenha os seguintes recursos:

Os clusters do AKS com suporte dos conjuntos de disponibilidade de (VM) máquina virtual não têm suporte para muitos desses recursos.

Crie um cluster do AKS com o Load Balancer (Standard) e os Conjuntos de Dimensionamento de Máquinas Virtuais

O exemplo a seguir cria um cluster do AKS com um só pool de nós com suporte de um Conjunto de Dimensionamento de Máquinas Virtuais. Ele habilita o dimensionamento automático do cluster no pool de nós do 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 comando az group create.

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

    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 \
        --generate-ssh-keys
    

Serviços do Azure anexados existentes

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

  • Registro de Contêiner do Azure
  • Azure Log Analytics
  • Azure Application Insights
  • Gerenciador de Tráfego do Azure
  • Conta do Armazenamento do Azure
  • Bancos de dados externos

Garantir cotas válidas

Como outras VMs estão implantadas na 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 de cota de vCPU.

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

Para saber mais, confira os limites de assinatura e serviço do Azure. Para verificar suas cotas atuais, no portal do Azure, acesse a folha de assinaturas, selecione sua assinatura e, em seguida, selecione Uso + cotas.

Alta disponibilidade e continuidade dos negócios

Se o aplicativo não conseguir lidar com o tempo de inatividade, você precisará seguir as melhores práticas para cenários de migração de alta disponibilidade. Leia mais sobre as Melhores práticas para o planejamento de continuidade de negócios complexos, recuperação de desastre e maximização do tempo de atividade no AKS.

Para aplicativos complexos, você normalmente migra ao longo do tempo, em vez de tudo de uma vez, o que significa que os ambientes antigos e novos podem precisar se comunicar pela rede. Aplicativos que anteriormente usavam os serviços ClusterIP para se comunicar podem precisar ser expostos como o 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 na frente do seu cluster do AKS.

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

Em uma implantação de vários clusters, os clientes devem se conectar a um nome DNS do Gerenciador de Tráfego que aponta para os serviços em cada cluster do AKS. Defina esses serviços usando os pontos de extremidade do Gerenciador de Tráfego. Cada ponto de extremidade é o IP do balanceador de carga do serviço. Usar 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 com o Gerenciador de Tráfego

O Azure Front Door é outra opção para rotear o tráfego para os clusters do AKS. Com o Azure Front Door, você pode definir, gerenciar e monitorar o roteamento global do tráfego da Web fazendo uma otimização para ter o melhor desempenho e o failover global instantâneo para alta disponibilidade.

Considerações para aplicativos sem 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. Verifique se tudo funciona conforme o esperado.
  3. Redirecione o tráfego para ativar o novo cluster.

Considerações para aplicativos com estado

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

Arquivos do Azure

Ao contrário dos discos, os Arquivos do Azure podem ser montados em vários hosts simultaneamente. No cluster do AKS, o Azure e o Kubernetes não impedem a criação de um pod que o cluster do AKS ainda use. Para evitar perda de dados e comportamentos inesperados, certifique-se de que os clusters não gravem simultaneamente nos mesmos arquivos.

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

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

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

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

Migrar volumes persistentes

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

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

Importante

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

As seguintes ferramentas de código aberto podem ajudar você a criar discos gerenciados e migrar volumes entre os clusters do Kubernetes:

Implantação da sua configuração de cluster

Recomendamos que você use seu pipeline existente de integração contínua e entrega contínua para implantar uma configuração válida conhecida no AKS. Você pode usar o Azure Pipelines para compilar e implantar seus aplicativos no AKS. Clone suas tarefas de implantação existentes e garanta kubeconfig pontos para o novo cluster do AKS.

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

kubectl get deployment -o yaml > deployments.yaml

Examine a saída e remova todos os campos de dados ativos desnecessários.

Mover recursos existentes para outra região

O ideal é mover o cluster do AKS para uma região diferente com suporte do AKS. Recomendamos que você crie um novo cluster na outra região e, em seguida, implante seus recursos e aplicativos no seu novo cluster.

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

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

  • Conteinerização de aplicativos por meio de Migrações para Azure
  • AKS com o Load Balancer (Standard) e Conjuntos de Dimensionamento de Máquinas Virtuais
  • Serviços do Azure anexados existentes
  • Como garantir cotas válidas
  • Alta disponibilidade e continuidade dos negócios
  • Considerações para aplicativos sem estado
  • Considerações para aplicativos com estado
  • Como implantar sua configuração de cluster