1.4. Fonctionnalités et plugins OADP
Les fonctionnalités OpenShift API for Data Protection (OADP) offrent des options pour sauvegarder et restaurer les applications.
Les plugins par défaut permettent à Velero de s’intégrer à certains fournisseurs de cloud et de sauvegarder et restaurer Red Hat OpenShift Service sur les ressources AWS.
1.4.1. Caractéristiques OADP Copier lienLien copié sur presse-papiers!
L’API OpenShift pour la protection des données (OADP) prend en charge les fonctionnalités suivantes:
- Backup
Il est possible d’utiliser OADP pour sauvegarder toutes les applications sur OpenShift Platform, ou vous pouvez filtrer les ressources par type, espace de noms ou étiquette.
L’OADP sauvegarde les objets Kubernetes et les images internes en les enregistrant comme fichier d’archive sur le stockage d’objets. L’OADP sauvegarde les volumes persistants (PV) en créant des instantanés avec l’API de snapshot cloud native ou avec l’interface de stockage de conteneurs (CSI). Dans le cas des fournisseurs de cloud qui ne prennent pas en charge les instantanés, OADP sauvegarde les ressources et les données PV avec Restic.
NoteIl faut exclure les opérateurs de la sauvegarde d’une application pour la sauvegarde et la restauration pour réussir.
- Restore
Il est possible de restaurer des ressources et des PV à partir d’une sauvegarde. Il est possible de restaurer tous les objets dans une sauvegarde ou de filtrer les objets par l’espace de noms, le PV ou l’étiquette.
NoteIl faut exclure les opérateurs de la sauvegarde d’une application pour la sauvegarde et la restauration pour réussir.
- Calendrier
- Les sauvegardes peuvent être programmées à des intervalles spécifiés.
- Crochets
- Il est possible d’utiliser des crochets pour exécuter des commandes dans un conteneur sur un pod, par exemple, fsfreeze pour geler un système de fichiers. Il est possible de configurer un crochet pour s’exécuter avant ou après une sauvegarde ou une restauration. Les crochets de restauration peuvent fonctionner dans un conteneur d’init ou dans le conteneur d’application.
1.4.2. Plugins OADP Copier lienLien copié sur presse-papiers!
L’API OpenShift pour la protection des données (OADP) fournit des plugins Velero par défaut qui sont intégrés aux fournisseurs de stockage pour prendre en charge les opérations de sauvegarde et d’instantané. Il est possible de créer des plugins personnalisés basés sur les plugins Velero.
L’OADP fournit également des plugins pour Red Hat OpenShift Service sur les sauvegardes de ressources AWS, les sauvegardes de ressources OpenShift Virtualization et les instantanés CSI (Container Storage Interface).
| Plugin OADP | Fonction | Emplacement de stockage |
|---|---|---|
|
| Sauvegarde et restaure les objets Kubernetes. | AWS S3 |
| Sauvegarde et restaure les volumes avec des instantanés. | AWS EBS | |
|
| Sauvegarde et restaure Red Hat OpenShift Service sur les ressources AWS. [1] | Boutique d’objets |
|
| Sauvegarde et restaure les ressources OpenShift Virtualization. [2] | Boutique d’objets |
|
| Sauvegarde et restaure des volumes avec des instantanés CSI. [3] | Le stockage en nuage qui prend en charge les instantanés CSI |
|
| Le logiciel VolumeSnapshotMover déplace les snapshots du cluster dans un magasin d’objets à utiliser lors d’un processus de restauration pour récupérer des applications étatiques, dans des situations telles que la suppression de clusters. [4] | Boutique d’objets |
- Il est obligatoire.
- Les disques de machine virtuelle sont sauvegardés avec des instantanés CSI ou Restic.
Le plugin csi utilise l’API instantanée Kubernetes CSI.
- Le logiciel OADP 1.1 ou version ultérieure utilise snapshot.storage.k8s.io/v1
- Le logiciel OADP 1.0 utilise snapshot.storage.k8s.io/v1beta1
- L’OADP 1.2 seulement.
1.4.3. À propos des plugins OADP Velero Copier lienLien copié sur presse-papiers!
Lorsque vous installez Velero, vous pouvez configurer deux types de plugins:
- Plugins de fournisseur de cloud par défaut
- Des plugins personnalisés
Les deux types de plugins sont facultatifs, mais la plupart des utilisateurs configurent au moins un plugin fournisseur de cloud.
1.4.3.1. Plugins de fournisseurs de cloud Velero par défaut Copier lienLien copié sur presse-papiers!
Lorsque vous configurez le fichier oadp_v1alpha1_dpa.yaml, vous pouvez installer l’un des plugins par défaut suivants:
- AWS (Amazon Web Services)
- ajouter au panier OpenShift Velero plugin
- CSI (Interface de stockage de conteneurs)
- KubeVirt (KubeVirt)
Lors du déploiement, vous spécifiez les plugins par défaut souhaités dans le fichier oadp_v1alpha1_dpa.yaml.
Exemple de fichier
Le fichier .yaml suivant installe les plugins openshift, aws, azure et gcp:
1.4.3.2. Plugins Velero personnalisés Copier lienLien copié sur presse-papiers!
Lors du déploiement, vous pouvez installer un plugin Velero personnalisé en spécifiant l’image et le nom du plugin lorsque vous configurez le fichier oadp_v1alpha1_dpa.yaml.
Lors du déploiement, vous spécifiez les plugins personnalisés souhaités dans le fichier oadp_v1alpha1_dpa.yaml.
Exemple de fichier
Le fichier .yaml suivant installe les plugins openshift, azure et gcp par défaut et un plugin personnalisé qui a le nom custom-plugin-example et l’image quay.io/example-repo/custom-velero-plugin:
1.4.3.3. Les plugins Velero renvoient le message « EOF reçu, arrêt de la boucle recv » Copier lienLien copié sur presse-papiers!
Les plugins Velero sont lancés en tant que processus distincts. Après la fin de l’opération Velero, soit avec succès ou non, ils sortent. La réception d’un EOF reçu, l’arrêt du message de boucle recv dans les journaux de débogage indique qu’une opération de plugin est terminée. Cela ne signifie pas qu’une erreur s’est produite.
1.4.4. Plugins OADP problèmes connus Copier lienLien copié sur presse-papiers!
La section suivante décrit les problèmes connus dans les plugins OpenShift API for Data Protection (OADP):
1.4.4.1. Le plugin Velero panique lors des sauvegardes d’images en raison d’un secret manquant Copier lienLien copié sur presse-papiers!
Lorsque la sauvegarde et l’emplacement de stockage de sauvegarde (BSL) sont gérés en dehors du champ d’application de l’application de protection des données (DPA), le contrôleur OADP, ce qui signifie que la réconciliation DPA ne crée pas le fichier oadp-<bsl_name>-bsl_provider>-registry-secret pertinent.
Lorsque la sauvegarde est exécutée, le plugin OpenShift Velero panique sur la sauvegarde imagestream, avec l’erreur de panique suivante:
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item" backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io, namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked: runtime error: index out of range with length 1, stack trace: goroutine 94…
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…
1.4.4.1.1. Contournement pour éviter l’erreur de panique Copier lienLien copié sur presse-papiers!
Afin d’éviter l’erreur de panique du plugin Velero, effectuez les étapes suivantes:
Étiqueter le BSL personnalisé avec l’étiquette correspondante:
oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bsl
$ oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bslCopy to Clipboard Copied! Toggle word wrap Toggle overflow Après que le BSL soit étiqueté, attendez que le DPA se réconcilie.
NoteIl est possible de forcer la réconciliation en apportant tout changement mineur au DPA lui-même.
Lorsque le DPA se réconcilie, confirmez que les oadp-<bsl_name>-<bsl_provider>-registry-secret pertinents ont été créés et que les données de registre correctes y ont été peuplées:
oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data'
$ oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.4.2. Défaut de segmentation du contrôleur OpenShift ADP Copier lienLien copié sur presse-papiers!
Lorsque vous configurez un DPA avec à la fois cloudstorage et restic activé, le pod openshift-adp-controller-manager se bloque et redémarre indéfiniment jusqu’à ce que le pod échoue avec un défaut de segmentation de boucle de crash.
Le velero ou le cloudstorage peuvent être définis, car ce sont des champs mutuellement exclusifs.
- Lorsque vous avez défini à la fois velero et cloudstorage, le gestionnaire openshift-adp-controller-manager échoue.
- Lorsque vous n’avez ni velero ni cloudstorage défini, le gestionnaire openshift-adp-controller-manager échoue.
Consultez l’OADP-1054 pour plus d’informations à ce sujet.
1.4.4.2.1. Contournement de faille de segmentation du contrôleur OpenShift ADP Copier lienLien copié sur presse-papiers!
Lorsque vous configurez un DPA, vous devez définir le velero ou le cloudstorage. Lorsque vous définissez les deux API dans votre DPA, le pod openshift-adp-controller-manager échoue avec un défaut de segmentation de boucle de panne.