Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Migrar aplicações de um cluster Kubernetes de terceiros para o ACK

Última atualização: Aug 25, 2026

Após conectar um cluster Kubernetes de terceiros a um cluster registrado no ACK One, faça backup das aplicações e dos volumes pelo Cloud Backup e restaure-os em um cluster ACK para realizar a migração entre nuvens.

Este exemplo demonstra a migração ponta a ponta de uma aplicação MySQL.

Limitações

Analise estas restrições antes de começar. Violações durante a migração bloqueiam o progresso.

  • Plug-in CSI obrigatório no cluster de restauração. Clusters que utilizam FlexVolume, ou que usam csi-compatible-controller com FlexVolume, não oferecem suporte à restauração.

  • Requisitos de versão do Kubernetes. Cluster de origem: Kubernetes 1.16 ou superior. Cluster ACK de restauração: Kubernetes 1.18 ou superior.

  • Associação única do cofre. Cada cofre de backup pode ser associado a um cluster de restauração apenas uma vez.

Aviso

O cluster registrado, o cluster ACK e o bucket do OSS devem estar na mesma região. A distribuição entre regiões diferentes causa falha no backup e na restauração.

Como funciona

  1. Conecte seu cluster Kubernetes de terceiros a um cluster registrado no ACK One.

  2. Faça backup da aplicação e de seus volumes em um bucket do OSS pelo Cloud Backup.

  3. Associe o cofre de backup ao cluster ACK de destino.

  4. Restaure a aplicação no cluster ACK, com conversão automática da StorageClass para uma classe de armazenamento nativa da Alibaba Cloud.

Pré-requisitos

Certifique-se de atender aos seguintes requisitos:

Importante

Antes de restaurar, instale e configure os add-ons necessários no cluster ACK:

  • aliyun-acr-credential-helper: Conceda permissões ao cluster e configure acr-configuration.

  • alb-ingress-controller: Configure um ALBConfig.

Observações de uso

  • Ao fazer backup de volumes locais, crie PVs e PVCs para montá-los.

  • Para backups de armazenamento de objetos, arquivos ou blocos de terceiros, monte os volumes com PVs e PVCs usando o plug-in CSI.

Preparações

Verifique os itens abaixo antes de executar o backup.

No cluster registrado

É necessário ter um usuário RAM com permissões de OSS e Cloud Backup, além de um Secret chamado alibaba-addon-secret contendo o AccessKey ID e o Secret desse usuário no namespace csdr. Confirme executando:

kubectl get secret alibaba-addon-secret -n csdr

Saída esperada:

alibaba-addon-secret   Opaque   2      5d22h

No cluster ACK

  • ACK managed cluster: O Cloud Backup está ativado e existe um bucket do OSS chamado cnfs-oss-****.

  • ACK dedicated cluster: A função RAM do worker possui permissões de OSS e Cloud Backup. Consulte Install migrate-controller and grant permissions.

Etapa 1: Implantar a aplicação no cluster Kubernetes externo

Execute todos os comandos no cluster Kubernetes externo (cluster de origem conectado ao seu cluster registrado).

Este exemplo utiliza uma aplicação MySQL com uma PVC chamada mysql-pvc, um PV chamado mysql-pv e um caminho de montagem /mnt.

  1. Crie um namespace chamado test1:

    kubectl create namespace test1
  2. Monte o volume da aplicação MySQL com um PV e uma PVC usando o plug-in CSI. Verifique a documentação de CSI do seu provedor de nuvem. Caso não haja suporte a CSI, conecte-se ao cluster registrado para utilizar o plug-in CSI da Alibaba Cloud.

  3. Confirme se a aplicação está em execução:

    kubectl -n test1 get pod | grep mysql-sts

    Saída esperada:

    mysql-sts-0   1/1     Running   0         1m02s
  4. Verifique se o PV inclui campos CSI:

    kubectl -n test1 get pv mysql-pv -oyaml

    Saída esperada (trecho):

    csi:
      driver: ****
      volumeAttributes:
        xxxx: xxxx
        xxxx: xxxx
      volumeHandle: mysql-pv
  5. Acesse o container do MySQL:

    kubectl -n test1 exec -it mysql-sts-0 -- /bin/bash
  6. Crie arquivos de teste para validar a restauração posteriormente:

    cd /mnt && touch test && ls

    Saída esperada:

    test
Importante

Suspenda as operações de gravação antes de iniciar o backup para garantir a consistência dos dados.

Etapa 2: Fazer backup da aplicação no cluster registrado

Realize todas as operações no cluster registrado no console do ACK.
  1. Caso não exista um cofre de backup, crie um. Consulte Create a backup vault.

  2. Crie uma tarefa de backup sob demanda chamada mysql-backup no cluster registrado. Consulte Create a backup task.

    Parâmetro

    Valor

    Name

    mysql-backup

    Backup Vaults

    Selecione o cofre criado

    Backup Namespaces

    test1

    Volume Backup

    Marque Volume Backup para incluir dados persistentes

  3. Na página Application Backup, clique em Backup Records. Aguarde até que mysql-backup mude de InProgress para Completed.

Etapa 3: Associar o cofre de backup ao cluster ACK

Realize todas as operações no cluster ACK no console do ACK.

Se você estiver usando um cofre de backup recém-criado ou ainda não o tiver associado a este cluster ACK, faça a associação antes de restaurar. Cada cofre pode ser associado apenas uma vez. Após a inicialização, os backups são sincronizados automaticamente.

  1. Na página Application Backup, clique em Restore.

  2. No painel Restore, insira um Name, selecione Backup Vaults e clique em Initialize Backup Vault.

  3. Após a inicialização, selecione a tarefa de restauração no cofre de backup e clique em OK.

  4. Na aba Backup Records, aguarde o aparecimento de mysql-backup na lista.

Etapa 4: Restaurar a aplicação no cluster ACK

Realize todas as operações no cluster ACK no console do ACK.

Durante a restauração, o cluster ACK monta dinamicamente uma PVC com a StorageClass alibabacloud-cnfs-nas (Alibaba Cloud NAS) para a aplicação MySQL e restaura os dados no volume associado.

  1. Crie uma tarefa de restauração chamada mysql-restore. Consulte Restore applications and volumes.

    Parâmetro

    Valor

    Name

    mysql-restore

    Backup Vaults

    Selecione o cofre criado

    Select Backup

    mysql-backup

    Reset Namespace

    Altere test1 para test2

    StorageClass Conversion

    Para mysql-pvc, selecione alibabacloud-cnfs-nas

  2. Clique em View Restoration Records. Aguarde até que mysql-restore mude de InProgress para Completed.

  3. Verifique se a aplicação está em execução:

    kubectl -n test2 get pod | grep mysql-sts

    Saída esperada:

    mysql-sts-0   1/1     Running   0          4s
  4. Valide a restauração dos dados:

    1. Confirme se a StorageClass da PVC é alibabacloud-cnfs-nas:

      kubectl -n test2 get pvc | grep mysql-pvc

      Saída esperada:

      mysql-pvc   Bound    nas-****   25Gi       RWO            alibabacloud-cnfs-nas   3m24s
    2. Verifique se a PVC está montada no pod do MySQL:

      kubectl -n test2 describe pvc mysql-pvc | grep "Used By"

      Saída esperada:

      Used By:       mysql-sts-0
    3. Acesse o container do MySQL e verifique os dados de teste:

      kubectl -n test2 exec -it mysql-sts-0 -- /bin/bash
      cd /mnt && ls

      Saída esperada:

      test

      A presença do arquivo de teste confirma que a restauração dos dados foi bem-sucedida.

Próximas etapas