Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve estratégias para migrar cargas de trabalho típicas, tanto sem estado quanto com estado, do Amazon Elastic Kubernetes Service (EKS) para o Serviço de Kubernetes do Azure (AKS).
Considerações
O processo de implantação de uma carga de trabalho de produção do mundo real varia dependendo dos seguintes fatores:
Estratégias de implantação: Métodos gitOps versus integração contínua de DevOps tradicional e métodos de CI/CD (implantação contínua) influenciam a abordagem de implantação. O GitOps prioriza a infraestrutura declarativa gerenciada por meio de repositórios controlados por versão. A CI/CD do DevOps se concentra em fluxos de trabalho automatizados para entrega de aplicativos.
Artefatos de implantação: Seus artefatos de implantação ajudam a definir a estrutura de implantação. Arquivos YAML, arquivos de manifesto, gráficos do Helm e configurações do Kustomize fornecem várias abordagens para especificar e personalizar as configurações de implantação. Cada abordagem tem pontos fortes exclusivos que beneficiam casos de uso específicos.
Autenticação e autorização de carga de trabalho: Dependendo da configuração, os métodos de autenticação e autorização diferem. Você pode usar funções de IAM (Gerenciamento de Identidade e Acesso) do Amazon Web Services (AWS), mecanismos de identidade de carga de trabalho ou cadeias de conexão para controle de acesso.
Monitorização: Ao implementar soluções de monitoramento, você pode usar várias ferramentas e metodologias para ajudar a garantir o desempenho e a integridade das cargas de trabalho implantadas. Para obter mais informações sobre como o monitoramento do AKS e do EKS se comparam, consulte o monitoramento e o registro em log do Kubernetes.
Antes da migração, examine e considere as seguintes diretrizes gerais e recursos de prática recomendada:
Revise as práticas recomendadas para operadores e desenvolvedores de cluster.
Defina a estratégia de monitoramento e alerta para ajudar a garantir que o aplicativo seja executado conforme o esperado.
Defina os requisitos de segurança e conformidade para o aplicativo e o ambiente do AKS.
Defina as políticas de controle de acesso e como aplicá-las. Identifique os padrões de conformidade aos quais sua carga de trabalho deve aderir.
Defina o plano de recuperação de desastre e continuidade de negócios para o ambiente do AKS e o aplicativo.
Defina as políticas e procedimentos para backup e restauração. Identifique o RTO (objetivo de tempo de recuperação) e o RPO (objetivo do ponto de recuperação).
Identifique quaisquer riscos ou desafios que você possa encontrar durante a implantação.
Teste a funcionalidade para garantir que o aplicativo funcione conforme o esperado antes de redirecionar o tráfego ao vivo para o novo cluster do AKS.
Considerações sobre migração de carga de trabalho
Considere os seguintes aspectos antes de migrar cargas de trabalho do Amazon EKS para o AKS.
Compreender o ambiente existente do Amazon EKS
Analise seu ambiente EKS existente para entender a arquitetura, os recursos e as configurações atuais.
Examine a configuração do EKS: Avalie a configuração do cluster do EKS, como tipos de nó, número de nós, versão do Kubernetes e política de suporte e configuração de dimensionamento.
Observação
EKS permite a criação de imagens AMI personalizadas para nós de EKS. O AKS não permite o uso de imagens de nó personalizadas. Se sua implantação exigir personalização de nó, você poderá aplicar a personalização do kubelet e DaemonSets para personalizar seus nós.
Examine as cargas de trabalho do aplicativo: Identifique todas as cargas de trabalho do Kubernetes executadas no cluster EKS, incluindo implantações, serviços, conjuntos com estado, configurações de entrada e PVCs (declarações de volume persistente). Crie uma lista completa de aplicativos e seus recursos associados.
Verificar dependências: Identifique quaisquer dependências em serviços AWS específicos do EKS.
Serviço AWS Dependência Gerenciador de Segredos da AWS Azure Key Vault Agente do Amazon GuardDuty Microsoft Defender para Contêineres Agente de identidade do pod do EKS Carga de trabalho do Microsoft Entra ID Drivers de Interface de Armazenamento de Contêiner (CSI) do Amazon Elastic File System (EFS) ou Elastic Block Store (EBS) Drivers CSI do AKS Faça backup do cluster EKS: Você pode usar uma ferramenta que não seja da Microsoft, como o Velero , para fazer backup e migrar recursos do Kubernetes e PVs (volumes persistentes).
Preparar o ambiente do AKS do Azure
A CNI (Interface de Rede de Contêiner) da Amazon Virtual Private Cloud (VPC) é o plug-in de rede padrão compatível com o EKS. Um cluster do AKS dá suporte aos seguintes plug-ins de rede e métodos para implantar um cluster em uma rede virtual:
- Rede Kubenet (padrão no AKS)
- Rede CNI do Azure
- Sobreposição de CNI do Azure
- Rede CNI do Azure para alocação dinâmica
- CNI do Azure com integração do Cilium
- CNIs não Microsoft
Para preparar o cluster AKS, siga estas etapas:
Crie um novo cluster do AKS no Azure. Defina as configurações de rede desejadas para corresponder aos seus requisitos.
Examine os manifestos do Kubernetes e os arquivos YAML que você usa no EKS. Verifique se há qualquer possível incompatibilidade de versão da API do Kubernetes ou configurações específicas do EKS que o AKS não dá suporte.
Verifique se as imagens do Docker e o local do registro de imagem de contêiner estão acessíveis no cluster do AKS. Verifique a conectividade de rede e as configurações de autenticação e autorização necessárias para acessar as imagens.
Siga estas etapas para criar com êxito um cluster do AKS e ajudar a garantir a compatibilidade para seus manifestos do Kubernetes e imagens do Docker. A compatibilidade adequada ajuda a garantir um processo de migração suave do EKS para o AKS.
Visão geral da migração
Uma migração do Amazon EKS para o AKS envolve as seguintes etapas:
Migração de imagem de contêiner: Use ferramentas como kubectl, Docker ou registros de contêiner para exportar e importar imagens.
- Exportar imagens do EKS.
- Configure um registro de contêiner do Azure e anexe-o ao AKS, se necessário.
- Envie imagens por push para o registro de contêiner.
Você também pode importar imagens de contêiner para um registro de contêiner diretamente de um repositório público ou privado não Azure. Para obter mais informações, consulte Importar imagens de contêiner.
Migração de manifesto do Kubernetes: o AKS usa o manifesto do arquivo YAML do Kubernetes para definir objetos do Kubernetes. As implantações normalmente são criadas e gerenciadas usando
kubectl create
oukubectl apply
. Para criar uma implantação, defina um arquivo de manifesto no formato YAML. Para obter mais informações, consulte o manifesto de exemplo do AKS.Migração de dados: planeje cuidadosamente a migração de aplicativos com estado para evitar perda de dados ou tempo de inatividade inesperado.
Considerações sobre migração de carga de trabalho sem estado
Ao migrar seus manifestos do Kubernetes, você deve adaptar a configuração para funcionar no ambiente do Azure.
Atualizar manifestos: atualize seus manifestos do Kubernetes para usar os novos locais de imagem no registro de contêiner. Substitua as referências de imagem nos seus arquivos YAML pelo caminho do registro de contêiner.
Examine os arquivos de manifesto do Kubernetes existentes para configurações específicas do AWS, como funções VPC e IAM.
Revise as funções do IAM do EKS associadas a nós, contas de serviço e outros recursos. Mapeie as funções com funções equivalentes de controle de acesso baseado em função (RBAC) do Azure AKS. Para obter mais informações, consulte Identidade e acesso à carga de trabalho do Kubernetes.
Modifique os arquivos de manifesto para substituir as configurações específicas do AWS por configurações específicas do Azure, como anotações.
Aplique manifestos ao AKS:
Aplique os arquivos de manifesto do Kubernetes modificados usando
kubectl apply -f
.
Considerações sobre migração de carga de trabalho com estado
Se seus aplicativos usarem PVs ou PVCs para armazenamento de dados, faça backup dos dados deles. Use ferramentas como o Velero para executar backups de cluster, inclusive para dados PV e PVC. Para obter mais informações, consulte Backup e restaure seus recursos de cluster do Amazon EKS usando o Velero.
Os aplicativos com estado normalmente têm requisitos de armazenamento de dados persistentes, que adicionam complexidade ao processo de migração. Para obter uma comparação dos recursos de armazenamento do Amazon EKS e do AKS, consulte as opções de armazenamento para um cluster do Kubernetes.
Siga estas etapas para fazer backup de dados persistentes:
Execute um backup do cluster EKS.
Copie o backup do Velero de um bucket S3 para o Armazenamento de Blobs do Azure usando o comando AzCopy.
Se o AKS e o EKS usarem diferentes
storageClassNames
para os PVCs, crie umconfigMap
que traduza a origemstorageClassNames
para um nome de classe compatível com AKS. Se você usar a mesma solução de armazenamento nos clusters kubernetes do EKS e do AKS, ignore esta etapa.Restaure o backup para o AKS usando o comando Velero restore.
Aplique as alterações necessárias aos objetos restaurados, como referências a imagens de contêiner no Registro de Contêiner Elástico da Amazon ou acesso a segredos.
Contribuidores
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autores principais:
- Dixit Arora | Engenheiro sênior de clientes, ISV DN Coe
- Ketan Chawda | Engenheiro sênior de clientes, ISV DN Coe
Outros colaboradores:
- Paolo Salvatori | Engenheiro de cliente principal, ISV &DN Coe
- Anthony Nevico | Arquiteto-chefe de Soluções em Nuvem
- Francis Simy Nazareth | Especialista Técnico Sênior
Para ver perfis não públicos no LinkedIn, entre no LinkedIn.
Próximas etapas
- Guia de migração: exemplos do Azure
- Fazer backup e restaurar clusters de carga de trabalho usando o Velero no AKS híbrido
- Migrar para o AKS
Recursos relacionados
- AKS para profissionais do Amazon EKS
- Gerenciamento de acesso e identidade do Kubernetes
- Monitoramento e registro em log do Kubernetes
- Acesso seguro de rede ao Kubernetes
- Opções de armazenamento para um cluster do Kubernetes
- Gerenciamento de custos para Kubernetes
- Gerenciamento de nós e grupos de nós do Kubernetes
- Governança de cluster