Migrando Azure AKS para Huawei CCE

V1.0 – Janeiro 2024

Versão Autor Descrição
V1.0 – 2024-01-16 Diogo Hatz 50037923 Tradução do documento
V1.0 – 2024-01-16 Wisley Paulo 00830850 Revisão do documento

Migração de cluster Kubernetes de AKS para CCE

Introdução

Realizar a migração do serviço de Kubernetes AKS, da provedora Microsoft Azure, para o serviço gerenciado de clusters Cloud Container Engine (CCE) da Huawei Cloud é uma decisão estratégica que pode empoderar organizações a refinar a sua estratégia de orquestração de containers em resposta às crescentes demandas do cenário de cloud. A transição representa uma oportunidade para otimizar operações, aumentar a escalabilidade e analisar o ecossistema da Huawei Cloud. Crucialmente, a jornada de migração é guiada e facilitada pela poderosa ferramenta de backup e migração de containers Velero, garantindo a integridade dos dados e minimizando a interrupção dos serviços. Seja a migração motivada por custo-benefício, o anseio por uma integração suave com os serviços da Huawei Cloud, ou a jornada por uma maior performance, este guia oferece um passo-a-passo detalhado para uma transição bem-sucedida, permitindo que a sua empresa abrace a era cloud-native com confiança, juntamente com o suporte imensurável da ferramenta Velero.

Processo da Operação

Para a migração do serviço Microsoft Azure Kubernetes Service (AKS) para a Huawei Cloud Container Engine (CCE), uma operação meticulosa foi executada. Primeiramente, uma análise detalhada foi conduzida para identificar todos os workloads, configurações e dependências dentro do cluster AKS. Os recursos necessários foram provisionados dentro da Huawei CCE, garantindo a compatibilidade e escalabilidade para acomodar os workloads.

Em seguida, as preparações para a migração dos dados foram realizadas, incluindo a transferência de imagens do container, volumes persistentes e arquivos de configuração, tudo resguardado pelo Velero para backup e restauração confiáveis. A migração por si foi executada com cautela para minimizar downtime, com monitoramento contínuo ao longo de toda a transição para abordar quaisquer desafios prontamente.

Após a conclusão da migração, workloads na Huawei CCE foram validados para garantir uma operação estável. Configurações foram otimizados conforme o necessário, e práticas de monitoramento e manutenção foram estabelecidas para garantir o sucesso contínuo da operação de aplicações em container no ambiente Huawei CCE. O processo dessa operação garantiu uma migração suave e bem-sucedida, alinhando a infraestrutura com as necessidades crescentes e estratégias na Huawei Cloud Container Engine.

Implementação

Microsoft Azure

VPC para os Nodes

Neste exemplo, o AKS tem 1 VPC com 1 subnet. Redes virtuais foram utilizadas para o gerenciamento dos endereços de IP, segurança, integração com os serviços da Azure e demais funcionalidades relacionadas à rede para os nodes do AKS. Eles são uma parte essencial na implementação e gerenciamento dos clusters AKS na Azure.

AKS – Cluster

  1. Primeiramente, é necessário checar os recursos essenciais do Kubernetes, como os workloads, namespaces, armazenamento, nodes, pods e serviços.

  2. Navegue até a home, Kubernetes services e clique no serviço de Kubernetes para migrar.

  3. Conecte no cluster utilizando a ferramenta de comandos por texto para interagir diretamente com o cluster utilizando o kubectl, a ferramenta de comandos por texto do Kubernetes. Kubectl está disponível dentro do Azure Cloud Shell por padrão e pode, também, ser instalado localmente.

  1. Após abrir o cloud shell, também é necessário configurar a subscription do cluster e fazer download das credenciais.

  1. Após conectar ao cluster, é possível checar os deployments, namespaces, pods e as informações do cluster para analisar o cluster.

Preparação dos Clusters

Neste exemplo, há um nodepool no AKS.

Configurações Adicionais para Pods e ELB

Para utilizar os serviços de PV e ELB no AKS, algumas configurações adicionais precisam ser realizadas. Não é necessário instalar o driver CSI ou o plugin kubenet, somente é necessário ativá-los.

Igualmente, é possível ver as imagens dos containers em execução no Kubernetes utilizando:

Instalando o Velero e realizando configurações adicionais

  1. Primeiramente, verifique o cluster AKS e o resource group através do seguinte comando:

  1. Configure o arquivo kubeconfig:

  1. Cheque se a conta de storage está configurada ou não. Em caso negativo, crie uma conta de storage através do seguinte comando:

  1. Instale o Velero no Azure Cloud Shell:

  1. Instale o Velero Server no cluster AKS:

  1. A este ponto, o arquivo “credentials-velero” precisa estar preenchido com certos parâmetros, como “Azure_Client_ID”, “Azure_Subscription_ID”, “Azure_Tenant_ID”, “Azure_Client_Secret” e “Azure_Resource_Group”. Essas configurações podem ser obtidas na etapa 5 acima.
  1. Somente o parâmetro “Azure_Client_ID” é obtido através do console da Azure. Para obter esse parâmetro, navegue até “Azure AD” e clique em “APP Registrations”, selecione “All Aplications” e “Storage account” para conseguir o Client ID.

  2. Azure AD > APP Registrations > All Applications > Storage Account

  1. Por fim, instale o Velero na AKS. Cheque todas as variáveis e valores antes de iniciar o Velero.

  1. Cheque se os pods, deployments e replicasets estão criados ou não.

Criando um backup utilizando o Velero

  1. Crie um novo backup através do comando: “./velero backup create $Backup_Name” e espere alguns minutos até que o backup esteja concluído.

  1. Cheque se o backup está completo ou não. É possível utilizar o seguinte comando para verificar:
./velero backup describe newbackup2

  1. Navegue até a seção relativa às storage accounts e cheque se o backup dos dados foi realizado com sucesso. Navegue até Home > Storage Account > Containers.

Huawei Cloud

Criar uma VPC

Primeiramente, uma VPC precisa ser criada. Neste exemplo, a subnet com CIDR 192.168.0.0/16 será utilizada.

Criar o Cluster no Console da Huawei Cloud

  1. Navegue até o console da CCE e clique em “Create CCE”;

  2. Selecione a AZ correspondente;

  3. Selecione as especificações de acordo com o cenário;

  4. Selecione a VPC e security group apropriados;

  5. Após a criação do CCE, faça login na instância da ECS criada;

  6. Teste a conexão e atrele um EIP se necessário.

Criar os nodes

  1. Vá para a seção de Nodes no console do CCE;

  2. Clique em “Create a Node”;

  3. Selecione as especificações do Host do Node;

  4. Selecione o Container Engine, SO e armazenamento;

  5. Modifique a rede de acordo com o necessário.

Instalar o Velero nos Clusters de Origem e de Destino (Mesmo Processo)

  1. É necessário fazer o download do kubectl e o seu arquivo de configurações, copiar o arquivo para o seu cliente e configure o kubectl. Após realizar a configuração, é possível utilizar o kubectl para acessar o cluster Kubernetes.

  2. Copie “kubectl” e o seu arquivo de configurações para o diretório “/home” no seu client. Se o kubectl já tiver sido instalado, só é necessário copiar o arquivo kubeconfig.

  1. Logue no seu client e configure o kubectl. Se o kubectl já tiver sido configurado, pule esta etapa.

  1. Troque o modo de acesso do kubectl baseado no cenário de aplicação. Use o seguinte comando para habilitar intra-vpc-access.

  1. Cheque as informações do cluster.

  1. Execute os seguintes comandos:
wget https://github.com/vmware-tanzu/velero/releases/download/v1.9.1/velero-v1.9.1-linux-amd64.tar.gz
tar -xvf velero-v1.7.0-linux-amd64.tar.gz
cd velero-v1.9.1-linux-amd64/ && sudo chmod +x velero && sudo mv velero /usr/local/bin
  1. Crie o arquivo de acesso credentials-velero para o armazenamento de objetos de backup.
vim credentials-velero
tar -xvf velero-v1.7.0-linux-amd64.tar.gz
  1. Configure as variáveis para o arquivo credentials-velero. Especifique todos os dados especificados abaixo:

  1. Crie o arquivo de configurações velero-credentials e o preencha com as informações abaixo:

  1. Abra o client do Velero. Mude o valor de credentials. Especifique –provider –plugins –bucket –secret-file –backup-location-config –snapshot-location-config –resource-group. Neste exemplo, o nome do bucket é velero. Mude a região e o url de acordo com o contexto de sua aplicação.

  1. Verifique a instalação do Velero com o kubectl.
kubectl get pod -n velero

Migrando os Recursos

Após realizar a instalação do Velero para ambos os clusters, é importante verificar o status do backup diretamente do servidor do Velero. Para fazer isso, é possível checar os backups atuais através do comando: “./velero get backup-locations”. Esse comando provê informações importantes em relação aos backups administrados pelo Velero, garantindo a segurança e disponibilidade dos recursos do Kubernetes.

  1. Para ver todos os backups disponíveis, utilize o comando: “./velero get backup-locations”.

  1. Verifique se todos os backups estão disponíveis e podem ser restaurados

Restaurando Aplicações no Cluster de Destino

  1. Utilize a ferramenta do Velero para criar um restore e especificar um backup. Neste exemplo, o backup nomeado vpro-backup será utilizado para restaurar uma aplicação WordPress para o cluster CCE.

Atualizar o Cluster de Destino e Validar a Migração

Atualize os campos de imagem nos arquivos yaml dentro do CCE cluster de acordo com o seu SWR.

Edite os campos specs e annotations do arquivo yaml de entrada de acordo com as regras na documentação oficial da Huawei Cloud.

Verifique e valide o cluster