1.5. Cas d’utilisation OADP
1.5.1. Sauvegarde des charges de travail sur OADP avec ROSA STS Copier lienLien copié sur presse-papiers!
1.5.1.1. Effectuer une sauvegarde avec OADP et ROSA STS Copier lienLien copié sur presse-papiers!
L’exemple suivant d’application hello-world n’a pas de volumes persistants (PVs) attachés. Effectuez une sauvegarde avec l’API OpenShift pour la protection des données (OADP) avec Red Hat OpenShift Service sur AWS (ROSA) STS.
La configuration de l’application de protection des données (DPA) fonctionnera.
Créez une charge de travail pour sauvegarder en exécutant les commandes suivantes:
$ oc create namespace hello-world$ oc new-app -n hello-world --image=docker.io/openshift/hello-openshiftExposez l’itinéraire en exécutant la commande suivante:
$ oc expose service/hello-openshift -n hello-worldAssurez-vous que l’application fonctionne en exécutant la commande suivante:
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`Exemple de sortie
Hello OpenShift!Sauvegardez la charge de travail en exécutant la commande suivante:
$ cat << EOF | oc create -f - apiVersion: velero.io/v1 kind: Backup metadata: name: hello-world namespace: openshift-adp spec: includedNamespaces: - hello-world storageLocation: ${CLUSTER_NAME}-dpa-1 ttl: 720h0m0s EOFAttendez que la sauvegarde soit terminée, puis exécutez la commande suivante:
$ watch "oc -n openshift-adp get backup hello-world -o json | jq .status"Exemple de sortie
{ "completionTimestamp": "2022-09-07T22:20:44Z", "expiration": "2022-10-07T22:20:22Z", "formatVersion": "1.1.0", "phase": "Completed", "progress": { "itemsBackedUp": 58, "totalItems": 58 }, "startTimestamp": "2022-09-07T22:20:22Z", "version": 1 }Effacer la charge de travail de démonstration en exécutant la commande suivante:
$ oc delete ns hello-worldRestaurer la charge de travail à partir de la sauvegarde en exécutant la commande suivante:
$ cat << EOF | oc create -f - apiVersion: velero.io/v1 kind: Restore metadata: name: hello-world namespace: openshift-adp spec: backupName: hello-world EOFAttendez que la restauration se termine en exécutant la commande suivante:
$ watch "oc -n openshift-adp get restore hello-world -o json | jq .status"Exemple de sortie
{ "completionTimestamp": "2022-09-07T22:25:47Z", "phase": "Completed", "progress": { "itemsRestored": 38, "totalItems": 38 }, "startTimestamp": "2022-09-07T22:25:28Z", "warnings": 9 }Assurez-vous que la charge de travail est restaurée en exécutant la commande suivante:
$ oc -n hello-world get podsExemple de sortie
NAME READY STATUS RESTARTS AGE hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90sCochez le JSONPath en exécutant la commande suivante:
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`Exemple de sortie
Hello OpenShift!
Consultez la documentation de dépannage de l’équipe OADP pour obtenir des conseils de dépannage.
1.5.1.2. Le nettoyage d’un cluster après une sauvegarde avec OADP et ROSA STS Copier lienLien copié sur presse-papiers!
Dans le cas où vous devez désinstaller l’opérateur OpenShift API for Data Protection (OADP) avec les sauvegardes et le seau S3 de cet exemple, suivez ces instructions.
Procédure
Effacer la charge de travail en exécutant la commande suivante:
$ oc delete ns hello-worldEffacer l’application de protection des données (DPA) en exécutant la commande suivante:
$ oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpaEffacer le stockage en nuage en exécutant la commande suivante:
$ oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadpAvertissementDans le cas où cette commande est suspendue, vous devrez peut-être supprimer le finalisateur en exécutant la commande suivante:
$ oc -n openshift-adp patch cloudstorage ${CLUSTER_NAME}-oadp -p '{"metadata":{"finalizers":null}}' --type=mergeLorsque l’opérateur n’est plus requis, retirez-le en exécutant la commande suivante:
$ oc -n openshift-adp delete subscription oadp-operatorEnlevez l’espace de noms de l’opérateur:
$ oc delete ns openshift-adpLorsque les ressources de sauvegarde et de restauration ne sont plus nécessaires, retirez-les du cluster en exécutant la commande suivante:
$ oc delete backups.velero.io hello-worldAfin de supprimer les objets de sauvegarde, de restauration et de télécommande dans AWS S3, exécutez la commande suivante:
$ velero backup delete hello-worldLorsque vous n’avez plus besoin des Définitions de ressources personnalisées (CRD), supprimez-les du cluster en exécutant la commande suivante:
$ for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; doneEffacer le seau AWS S3 en exécutant les commandes suivantes:
$ aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive$ aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadpDétachez la politique du rôle en exécutant la commande suivante:
$ aws iam detach-role-policy --role-name "${ROLE_NAME}" --policy-arn "${POLICY_ARN}"Supprimez le rôle en exécutant la commande suivante:
$ aws iam delete-role --role-name "${ROLE_NAME}"
1.5.2. L’API OpenShift pour la protection des données (OADP) restaure le cas d’utilisation Copier lienLien copié sur presse-papiers!
Ci-dessous est un cas d’utilisation pour utiliser OADP pour restaurer une sauvegarde dans un espace de noms différent.
1.5.2.1. La restauration d’une application dans un espace de noms différent en utilisant OADP Copier lienLien copié sur presse-papiers!
Restaurer une sauvegarde d’une application en utilisant OADP dans un nouvel espace de noms cible, test-restauration-application. Afin de restaurer une sauvegarde, vous créez une ressource personnalisée de restauration (CR) comme indiqué dans l’exemple suivant. Dans le CR de restauration, l’espace de noms source fait référence à l’espace de noms de l’application que vous avez inclus dans la sauvegarde. Ensuite, vous vérifiez la restauration en changeant votre projet vers le nouvel espace de noms restauré et en vérifiant les ressources.
Conditions préalables
- L’opérateur OADP a été installé.
- La sauvegarde d’une application est à restaurer.
Procédure
Créez une restauration CR comme indiqué dans l’exemple suivant:
Exemple de restauration CR
apiVersion: velero.io/v1 kind: Restore metadata: name: test-restore1 namespace: openshift-adp spec: backupName: <backup_name>2 restorePVs: true namespaceMapping: <application_namespace>: test-restore-application3 - 1
- Le nom de la restauration CR.
- 2
- Indiquez le nom de la sauvegarde.
- 3
- le namespaceMapping mappe l’espace de noms de l’application source à l’espace de noms de l’application cible. Indiquez l’espace de noms de l’application que vous avez sauvegardé. l’application test-restauration est l’espace de noms cible où vous souhaitez restaurer la sauvegarde.
Appliquez le CR de restauration en exécutant la commande suivante:
$ oc apply -f <restore_cr_filename>
La vérification
Assurez-vous que la restauration est en phase terminée en exécutant la commande suivante:
$ oc describe restores.velero.io <restore_name> -n openshift-adpChanger l’application de test-restauration de l’espace de noms restaurée en exécutant la commande suivante:
$ oc project test-restore-applicationContrôlez les ressources restaurées telles que la revendication de volume persistant (pvc), le service (svc), le déploiement, le secret et la carte de configuration en exécutant la commande suivante:
$ oc get pvc,svc,deployment,secret,configmapExemple de sortie
NAME STATUS VOLUME persistentvolumeclaim/mysql Bound pvc-9b3583db-...-14b86 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/mysql ClusterIP 172....157 <none> 3306/TCP 2m56s service/todolist ClusterIP 172.....15 <none> 8000/TCP 2m56s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/mysql 0/1 1 0 2m55s NAME TYPE DATA AGE secret/builder-dockercfg-6bfmd kubernetes.io/dockercfg 1 2m57s secret/default-dockercfg-hz9kz kubernetes.io/dockercfg 1 2m57s secret/deployer-dockercfg-86cvd kubernetes.io/dockercfg 1 2m57s secret/mysql-persistent-sa-dockercfg-rgp9b kubernetes.io/dockercfg 1 2m57s NAME DATA AGE configmap/kube-root-ca.crt 1 2m57s configmap/openshift-service-ca.crt 1 2m57s