Ripristinare un'applicazione da un backup
In questa sezione viene descritto come ripristinare le app da un backup.
Prerequisiti
Per eseguire il ripristino da un backup, presupponiamo che lo spazio dei nomi in cui esisteva l'applicazione sia stato eliminato accidentalmente.
Ripristinare nello stesso namespace
Per eseguire il ripristino dal backup appena creato, è necessario creare una risorsa personalizzata di ripristino (CR). Dobbiamo fornirgli un nome, fornire il nome del backup da cui eseguire il ripristino e impostare su true. È possibile impostare parametri aggiuntivi come illustrato nella "documentazione". Fare clic sul pulsante Crea.
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true
Quando la fase viene visualizzata come completata, è possibile vedere che l'app è stata ripristinata allo stato in cui è stata scattata l'istantanea. L'applicazione viene ripristinata nello stesso spazio dei nomi.
Ripristinare in un namespace diverso
Per ripristinare l'app in uno spazio dei nomi diverso, è possibile fornire un namespaceMapping nella definizione yaml di Restore CR.
Il seguente file yaml di esempio crea una CR di ripristino per ripristinare un'app e la relativa memoria persistente dallo spazio dei nomi postgresql al nuovo spazio dei nomi postgresql-ripristinato.
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 la fase viene visualizzata come completata, è possibile vedere che l'app è stata ripristinata allo stato in cui è stata scattata l'istantanea. L'app viene ripristinata in uno spazio dei nomi diverso, come specificato in yaml.
Ripristinare in una classe di archiviazione diversa
Velero fornisce una capacità generica di modificare le risorse durante il ripristino specificando le patch json. Le patch json vengono applicate alle risorse prima di essere ripristinate. Le patch json sono specificate in una configmap e la configmap è referenziata nel comando restore. Questa funzione consente di eseguire il ripristino utilizzando una classe di archiviazione diversa.
Nell'esempio seguente, l'applicazione, in fase di implementazione, utilizza ontap-nas come classe di storage per i propri volumi persistenti. Viene creato un backup dell'applicazione denominata backup-postgresql-ontaps3.
Simula una perdita dell'app disinstallando l'app.
Per ripristinare la macchina virtuale utilizzando una classe di storage diversa, ad esempio ontap-nas-eco storage, devi effettuare i due seguenti passaggi:
Passo 1
Creare una mappa di configurazione (console) nello spazio dei nomi openshift-adp come segue: Inserire i dettagli come mostrato nella schermata: Selezionare namespace : openshift-adp Nome: Change-ontap-sc (può essere qualsiasi nome) chiave: Change-ontap-sc-config.yaml: Valore:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "data-postgresql*" namespaces: - postgresql patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
L'oggetto della mappa di configurazione risultante dovrebbe essere simile al seguente (CLI):
Questa mappa di configurazione applicherà la regola del modificatore di risorse quando viene creato il ripristino. Verrà applicata una patch per sostituire il nome della classe storage in ontap-nas-eco per tutte le richieste di volume persistenti a partire da rhel.
Passo 2
Per ripristinare la macchina virtuale, utilizzare il seguente comando dall'interfaccia CLI di Velero:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
L'applicazione viene ripristinata con lo stesso namespace con le persistenti richieste di volume create utilizzando la classe di storage ontap-nas-eco.