Restaurar uma aplicação a partir de uma cópia de segurança
Esta seção descreve como restaurar aplicativos a partir de um backup.
Pré-requisitos
Para restaurar a partir de um backup, vamos supor que o namespace onde o aplicativo existia foi excluído acidentalmente.
Restaure para o mesmo namespace
Para restaurar a partir do backup que acabamos de criar, precisamos criar um recurso personalizado de restauração (CR). Precisamos fornecer um nome, fornecer o nome do backup que queremos restaurar e definir o restorePVs como verdadeiro. Parâmetros adicionais podem ser definidos como mostrado na "documentação". Clique no botão criar.
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true
Quando a fase for exibida concluída, você poderá ver que o aplicativo foi restaurado para o estado quando o snapshot foi feito. O aplicativo é restaurado para o mesmo namespace.
Restauração para um namespace diferente
Para restaurar o aplicativo para um namespace diferente, você pode fornecer um NamespaceMapping na definição yaml do Restore CR.
O arquivo yaml de exemplo a seguir cria um Restore CR para restaurar um aplicativo e seu armazenamento persistente do namespace postgresql, para o novo namespace postgresql-restaurado.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true includedNamespaces: - postgresql namespaceMapping: postgresql: postgresql-restored
Quando a fase for exibida concluída, você poderá ver que o aplicativo foi restaurado para o estado quando o snapshot foi feito. O aplicativo é restaurado para um namespace diferente, conforme especificado no yaml.
Restaure para uma classe de armazenamento diferente
O Velero fornece uma capacidade genérica de modificar os recursos durante a restauração especificando patches json. Os patches json são aplicados aos recursos antes que eles sejam restaurados. Os patches json são especificados em um configmap e o configmap é referenciado no comando restore. Esse recurso permite que você restaure usando diferentes classes de armazenamento.
No exemplo abaixo, o aplicativo, durante a implantação, usa o ONTAP-nas como a classe de storage para seus volumes persistentes. Um backup do aplicativo chamado backup-postgresql-ontaps3 é criado.
Simule uma perda do aplicativo desinstalando o aplicativo.
Para restaurar a VM usando uma classe de armazenamento diferente, por exemplo, classe de armazenamento ONTAP-nas-eco, você precisa fazer as seguintes duas etapas:
Passo 1
Crie um mapa de configuração (console) no namespace openshift-adp da seguinte forma: Preencha os detalhes como mostrado na captura de tela: Selecione namespace : openshift-adp Nome: Change-ONTAP-SC (pode ser qualquer nome) chave: Change-ONTAP-SC-config.yaml: Valor:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "data-postgresql*" namespaces: - postgresql patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
O objeto de mapa de configuração resultante deve ser parecido com este (CLI):
Este mapa de configuração aplicará a regra modificador de recursos quando a restauração for criada. Um patch será aplicado para substituir o nome da classe de armazenamento para ONTAP-nas-eco para todas as reivindicações de volume persistentes começando com rhel.
Passo 2
Para restaurar a VM, utilize o seguinte comando a partir da CLI do Velero:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
O aplicativo é restaurado no mesmo namespace com as reivindicações de volume persistente criadas usando a classe de storage ONTAP-nas-eco.