Use o centro de backup para fazer backup e restaurar aplicações em clusters ACK entre regiões para recuperação de desastres.
Antes de começar
Analise estas restrições antes de continuar.
| Restrição | Detalhe |
|---|---|
| Tipo de armazenamento | Suporta apenas aplicações e volumes em discos da Alibaba Cloud. Outros tipos de armazenamento não podem migrar com os dados do volume intactos. |
| Aplicações com estado que usam armazenamento não Alibaba Cloud | Desmarque Backup Volume nestas aplicações. Caso contrário, a recuperação entre regiões falha. |
| Versão do cluster de destino | O cluster de destino deve executar Kubernetes 1.18 ou posterior para restaurar dados de disco em nuvem a partir de snapshots do Elastic Compute Service (ECS). |
| Plugin de armazenamento do cluster de destino | O cluster de destino deve usar o plugin de armazenamento Container Storage Interface (CSI). Clusters que usam FlexVolume, ou ambos CSI e FlexVolume via csi-compatible-controller, não são suportados. |
| Recursos sendo excluídos | Recursos que estão sendo excluídos durante o backup são descartados. |
| Imutabilidade do repositório de backup | Os repositórios de backup são imutáveis após a criação e só podem ser excluídos. Recriar um repositório com o mesmo nome não funciona em clusters que usaram o original. |
| Clusters ACK dedicados e registrados | Para clusters Kubernetes autogerenciados no ECS, verifique as permissões de snapshot de disco ECS antes de usar a recuperação de volume entre regiões. Consulte Instalar o componente de serviço de backup migrate-controller e configurar permissões. |
Pré-requisitos
Certifique-se de que você tem:
-
Um cluster de destino executando Kubernetes 1.18 ou posterior (Criar um cluster ACK gerenciado, Criar um cluster ACK dedicado (não disponível mais para novas criações), ou Criar um cluster registrado e conectar a um cluster de data center).
-
Um cluster de destino que usa o plugin de armazenamento CSI.
-
Componentes do sistema instalados no cluster de destino antes de restaurar:
-
Add-on ACR sem senha: Conceda permissões e configure
acr-configuration. -
Add-on ALB Ingress: Configure
ALBConfige outras configurações.
-
-
O add-on
migrate-controllerinstalado e permissões configuradas em ambos os clusters. Consulte Instalar o componente de serviço de backup migrate-controller e configurar permissões. -
Snapshots de disco em nuvem ECS ativados. Consulte Ativar snapshots de disco em nuvem ECS. O serviço de snapshot é gratuito para ativar. Os snapshots incorrem em cobranças de pagamento conforme o uso com base no tamanho e retenção. Consulte Faturamento de snapshot.
Preparações
Este exemplo usa a seguinte configuração:
-
Cluster de backup: Cluster ACK Pro Cluster_BJ na região China (Pequim)
-
Cluster de recuperação: Cluster ACK Pro Cluster_SZ na região China (Shenzhen)
-
Repositório de backup: Associado a um bucket OSS na região China (Pequim)
Etapa 1: Na região China (Pequim), crie um bucket OSS com um nome que começa com cnfs-oss-***.
Se já existir um bucket OSS qualificado nesta região, ignore esta etapa.
Etapa 2: Crie uma aplicação Nginx com estado no namespace padrão de Cluster_BJ.
cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
labels:
app: nginx
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "alicloud-disk-topology-alltype"
resources:
requests:
storage: 20Gi
EOF
Etapa 1: Criar um repositório de backup
O centro de backup armazena dados de backup no OSS. Crie um repositório se nenhum existir.
-
A rede entre um repositório de backup e seu bucket OSS é configurada automaticamente, afetando as velocidades de upload e download de backup.
-
Mesma região (cluster e bucket OSS): O PrivateLink é usado.
-
Regiões diferentes (cluster e bucket OSS, como em cenários entre regiões): Usa uma conexão de rede pública. Ative o acesso à rede pública antes de continuar. Consulte Ativar o acesso à rede pública para um cluster.
-
-
Os repositórios de backup são imutáveis após a criação e só podem ser excluídos. Recriar um repositório com o mesmo nome não funciona em clusters que usaram o original.
Consulte Criar um repositório de backup.
Etapa 2: Fazer backup da aplicação em Cluster_BJ
A migração entre regiões suporta apenas aplicações sem estado e aplicações com estado que usam exclusivamente discos da Alibaba Cloud. Para outras aplicações com estado, desmarque Backup Volume para evitar falhas de recuperação.
Consulte Criar um agendamento de backup ou um backup imediato.
Etapa 3: Restaurar a aplicação em Cluster_SZ
Consulte Restaurar aplicações e volumes.
Etapa 4: Verificar a migração
Confirme que a aplicação Nginx está sendo executada corretamente em Cluster_SZ.
Usando kubectl:
kubectl get pods -n default
kubectl get pvc -n default
Confirme que o status do Pod é Running e que o PersistentVolumeClaim (PVC) está Bound.
Usando o console:
-
Faça login no Container Service Management Console. No painel de navegação à esquerda, clique em Clusters.
-
Na página de gerenciamento de Cluster_SZ, no painel de navegação à esquerda, escolha Workloads > StatefulSets.
-
Na coluna Actions da aplicação Nginx, clique em Details e clique na guia Pods. Confirme que o status da aplicação é Running.
Próximas etapas
-
Para migrar entre clusters com diferentes plugins de armazenamento ou versões do Kubernetes, consulte Usar o centro de backup para migrar aplicações de clusters Kubernetes de versões anteriores.
-
Para migrar aplicações com a linha de comando, consulte Usar kubectl para fazer backup e restaurar aplicações de cluster.