15.4. Restauration des machines virtuelles
Vous restaurez une ressource personnalisée (CR) OpenShift API for Data Protection (OADP) Backup
en créant une CRRestore
.
Vous pouvez ajouter des crochets au CR Restore
pour exécuter des commandes dans les conteneurs d'initialisation, avant le démarrage du conteneur d'application ou dans le conteneur d'application lui-même.
15.4.1. Création d'un CR de restauration Copier lienLien copié sur presse-papiers!
Vous restaurez une ressource personnalisée (CR) Backup
en créant une CR Restore
.
Conditions préalables
- Vous devez installer l'opérateur OpenShift API for Data Protection (OADP).
-
Le CR
DataProtectionApplication
doit être dans un étatReady
. -
Vous devez avoir un Velero
Backup
CR. - Ajustez la taille demandée pour que la capacité du volume persistant (PV) corresponde à la taille demandée au moment de la sauvegarde.
Procédure
Créez un CR
Restore
, comme dans l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que l'état du CR
Restore
estCompleted
en entrant la commande suivante :oc get restore -n openshift-adp <restore> -o jsonpath='{.status.phase}'
$ oc get restore -n openshift-adp <restore> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que les ressources de sauvegarde ont été restaurées en entrant la commande suivante :
oc get all -n <namespace>
$ oc get all -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Namespace que vous avez sauvegardé.
Si vous utilisez Restic pour restaurer les objets
DeploymentConfig
ou si vous utilisez des crochets post-restauration, exécutez le script de nettoyagedc-restic-post-restore.sh
en entrant la commande suivante :bash dc-restic-post-restore.sh <restore-name>
bash dc-restic-post-restore.sh <restore-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteAu cours du processus de restauration, les plug-ins OADP Velero réduisent les objets
DeploymentConfig
et restaurent les pods en tant que pods autonomes pour éviter que le cluster ne supprime les podsDeploymentConfig
restaurés immédiatement après la restauration et pour permettre aux hooks Restic et post-restauration de terminer leurs actions sur les pods restaurés. Le script de nettoyage supprime ces pods déconnectés et met à l'échelle tous les objetsDeploymentConfig
jusqu'au nombre approprié de répliques.Exemple 15.1.
dc-restic-post-restore.sh
script de nettoyageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.4.1.1. Création de crochets de restauration Copier lienLien copié sur presse-papiers!
Vous créez des crochets de restauration pour exécuter des commandes dans un conteneur dans un pod tout en restaurant votre application en modifiant la ressource personnalisée (CR) Restore
.
Vous pouvez créer deux types de crochets de restauration :
Un crochet
init
ajoute un conteneur init à un pod pour effectuer des tâches de configuration avant que le conteneur d'application ne démarre.Si vous restaurez une sauvegarde Restic, le conteneur init
restic-wait
est ajouté avant le conteneur init restore hook.-
Un hook
exec
exécute des commandes ou des scripts dans un conteneur d'un pod restauré.
Procédure
Ajoutez un crochet au bloc
spec.hooks
du CRRestore
, comme dans l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Facultatif : Tableau des espaces de noms auxquels le crochet s'applique. Si cette valeur n'est pas spécifiée, le crochet s'applique à tous les espaces de noms.
- 2
- Actuellement, les pods sont la seule ressource prise en charge à laquelle les crochets peuvent s'appliquer.
- 3
- Facultatif : Ce crochet ne s'applique qu'aux objets correspondant au sélecteur d'étiquette.
- 4
- Facultatif : Timeout indique la durée maximale pendant laquelle Velero attend la fin de
initContainers
. - 5
- Facultatif : si le conteneur n'est pas spécifié, la commande s'exécute dans le premier conteneur du pod.
- 6
- Il s'agit du point d'entrée du conteneur init ajouté.
- 7
- Facultatif : durée d'attente pour qu'un conteneur soit prêt. Cette durée doit être suffisante pour que le conteneur démarre et que tous les crochets précédents dans le même conteneur soient terminés. S'il n'est pas défini, le processus de restauration attend indéfiniment.
- 8
- Facultatif : durée d'attente pour l'exécution des commandes. La valeur par défaut est
30s
. - 9
- Les valeurs autorisées pour le traitement des erreurs sont
Fail
etContinue
:-
Continue
: Seuls les échecs de commande sont consignés. -
Fail
: Plus aucun crochet de restauration n'est exécuté dans aucun conteneur, dans aucun pod. Le statut du CRRestore
seraPartiallyFailed
.
-