Migre aplicativos usando o Trident Protect.
Você pode migrar seus aplicativos entre clusters ou para diferentes classes de armazenamento restaurando dados de backup.
|
|
Ao migrar um aplicativo, todos os ganchos de execução configurados para ele são migrados juntamente com o aplicativo. Se houver um gancho de execução pós-restauração, ele será executado automaticamente como parte da operação de restauração. |
Operações de backup e restauração
Para executar operações de backup e restauração nos seguintes cenários, você pode automatizar tarefas específicas de backup e restauração.
Clonar para o mesmo cluster
Para clonar um aplicativo para o mesmo cluster, crie um snapshot ou backup e restaure os dados para o mesmo cluster.
-
Faça um dos seguintes:
-
No mesmo cluster, faça um dos seguintes procedimentos, dependendo se você criou um snapshot ou um backup:
Clonar para um cluster diferente
Para clonar um aplicativo para um cluster diferente (realizar uma clonagem entre clusters), crie um backup no cluster de origem e, em seguida, restaure o backup em um cluster diferente. Certifique-se de que o Trident Protect esteja instalado no cluster de destino.
|
|
Você pode replicar um aplicativo entre clusters diferentes usando"Replicação SnapMirror" . |
-
Certifique-se de que o AppVault CR para o bucket de armazenamento de objetos que contém o backup foi configurado no cluster de destino.
-
No cluster de destino,"Restaure seus dados a partir do backup." .
Migrar aplicações de uma classe de armazenamento para outra classe de armazenamento.
Você pode migrar aplicativos de uma classe de armazenamento para uma classe de armazenamento diferente restaurando um backup para a classe de armazenamento de destino.
Por exemplo (excluindo os segredos do CR de restauração):
apiVersion: protect.trident.netapp.io/v1
kind: SnapshotRestore
metadata:
name: "${snapshotRestoreCRName}"
spec:
appArchivePath: "${snapshotArchivePath}"
appVaultRef: "${appVaultCRName}"
namespaceMapping:
- destination: "${destinationNamespace}"
source: "${sourceNamespace}"
storageClassMapping:
- destination: "${destinationStorageClass}"
source: "${sourceStorageClass}"
resourceFilter:
resourceMatchers:
kind: Secret
version: v1
resourceSelectionCriteria: exclude
-
Crie o arquivo de recurso personalizado (CR) e dê um nome a ele.
trident-protect-snapshot-restore-cr.yaml. -
No arquivo que você criou, configure os seguintes atributos:
-
metadata.name: (Obrigatório) O nome deste recurso personalizado; escolha um nome único e adequado ao seu ambiente.
-
spec.appArchivePath: O caminho dentro do AppVault onde o conteúdo do snapshot está armazenado. Você pode usar o seguinte comando para encontrar esse caminho:
kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}' -
spec.appVaultRef: (Obrigatório) O nome do AppVault onde o conteúdo do snapshot está armazenado.
-
spec.namespaceMapping: O mapeamento do namespace de origem da operação de restauração para o namespace de destino. Substituir
my-source-namespaceemy-destination-namespacecom informações do seu ambiente.--- apiVersion: protect.trident.netapp.io/v1 kind: SnapshotRestore metadata: name: my-cr-name namespace: trident-protect spec: appArchivePath: my-snapshot-path appVaultRef: appvault-name namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
Opcionalmente, se precisar selecionar apenas determinados recursos do aplicativo para restaurar, adicione filtros que incluam ou excluam recursos marcados com rótulos específicos:
-
resourceFilter.resourceSelectionCriteria: (Obrigatório para filtragem) Use
include or excludePara incluir ou excluir um recurso definido em resourceMatchers. Adicione os seguintes parâmetros resourceMatchers para definir os recursos a serem incluídos ou excluídos:-
resourceFilter.resourceMatchers: Um array de objetos resourceMatcher. Se você definir vários elementos nessa matriz, eles corresponderão como uma operação OR, e os campos dentro de cada elemento (grupo, tipo, versão) corresponderão como uma operação AND.
-
resourceMatchers[].group: (Opcional) Grupo do recurso a ser filtrado.
-
resourceMatchers[].kind: (Opcional) Tipo do recurso a ser filtrado.
-
resourceMatchers[].version: (Opcional) Versão do recurso a ser filtrado.
-
resourceMatchers[].names: (Opcional) Nomes no campo metadata.name do Kubernetes do recurso a ser filtrado.
-
resourceMatchers[].namespaces: (Opcional) Namespaces no campo metadata.name do recurso do Kubernetes a ser filtrado.
-
resourceMatchers[].labelSelectors: (Opcional) String do seletor de rótulo no campo metadata.name do recurso do Kubernetes, conforme definido em "Documentação do Kubernetes" . Por exemplo:
"trident.netapp.io/os=linux".Por exemplo:
-
-
spec: resourceFilter: resourceSelectionCriteria: "include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] -
-
Depois de preencher o
trident-protect-snapshot-restore-cr.yamlArquivo com os valores corretos, aplique o CR:kubectl apply -f trident-protect-snapshot-restore-cr.yaml
-
Restaure o snapshot para um namespace diferente, substituindo os valores entre colchetes pelas informações do seu ambiente.
-
O
snapshotO argumento usa um namespace e um nome de snapshot no formato<namespace>/<name>. -
O
namespace-mappingO argumento usa namespaces separados por dois pontos para mapear namespaces de origem para os namespaces de destino corretos no formatosource1:dest1,source2:dest2.Por exemplo:
tridentctl-protect create snapshotrestore <my_restore_name> --snapshot <namespace/snapshot_to_restore> --namespace-mapping <source_to_destination_namespace_mapping> -