Gérer les modèles de hook d'exécution de NetApp Backup and Recovery pour les charges de travail Kubernetes
Un hook d’exécution est une action personnalisée qui s’exécute avec une opération de protection des données dans une application Kubernetes gérée. Par exemple, créez des instantanés cohérents avec l'application en utilisant un hook d'exécution pour suspendre les transactions de base de données avant un instantané et les reprendre après. Lorsque vous créez un modèle de hook d'exécution, spécifiez le type de hook, le script à exécuter et les filtres pour les conteneurs cibles. Utilisez le modèle pour lier les hooks d’exécution à vos applications.
| 
 | 
 NetApp Backup and Recovery gèle et débloque les systèmes de fichiers pour des applications comme KubeVirt pendant la protection des données. Vous pouvez désactiver ce comportement globalement ou pour des applications spécifiques à l'aide de la documentation Trident Protect : 
  | 
Administrateur d'organisation ou administrateur SnapCenter . "En savoir plus sur les rôles d'accès à NetApp Backup and Recovery" . "En savoir plus sur les rôles d'accès à la NetApp Console pour tous les services" .
Types de hooks d'exécution
NetApp Backup and Recovery prend en charge les types de hooks d'exécution suivants, en fonction du moment où ils peuvent être exécutés :
- 
Pré-instantané
 - 
Post-instantané
 - 
Pré-sauvegarde
 - 
Post-sauvegarde
 - 
Post-restauration
 
Ordre d'exécution
Lorsqu'une opération de protection des données est exécutée, les événements de hook d'exécution se produisent dans l'ordre suivant :
- 
Tous les hooks d’exécution de pré-opération personnalisés applicables sont exécutés sur les conteneurs appropriés. Vous pouvez créer plusieurs hooks de pré-opération personnalisés, mais leur ordre d'exécution n'est ni garanti ni configurable.
 - 
Des blocages du système de fichiers se produisent, le cas échéant.
 - 
L'opération de protection des données est effectuée.
 - 
Les systèmes de fichiers gelés sont dégelés, le cas échéant.
 - 
NetApp Backup and Recovery exécute tous les hooks d’exécution de pré-opération personnalisés applicables sur les conteneurs appropriés. Vous pouvez créer plusieurs hooks post-opération personnalisés, mais leur ordre d'exécution n'est ni garanti ni configurable.
 
Si vous créez plusieurs hooks du même type, leur ordre d'exécution n'est pas garanti. Les crochets de différents types fonctionnent toujours dans l'ordre spécifié. Par exemple, voici l’ordre d’exécution d’une configuration qui possède tous les différents types de hooks :
- 
Hooks pré-instantanés exécutés
 - 
Hooks post-instantanés exécutés
 - 
Hooks de pré-sauvegarde exécutés
 - 
Hooks post-sauvegarde exécutés
 
| 
 | 
Testez les scripts d'exécution avant de les activer en production. Utilisez « kubectl exec » pour tester les scripts, puis vérifiez les instantanés et les sauvegardes en clonant l'application dans un espace de noms temporaire et en la restaurant. | 
| 
 | 
Si un hook d’exécution pré-snapshot ajoute, modifie ou supprime des ressources Kubernetes, ces modifications sont incluses dans le snapshot ou la sauvegarde et dans toute opération de restauration ultérieure. | 
Remarques importantes sur les hooks d'exécution personnalisés
Tenez compte des éléments suivants lors de la planification des hooks d’exécution pour vos applications.
- 
Un hook d'exécution doit utiliser un script pour effectuer des actions. De nombreux hooks d’exécution peuvent référencer le même script.
 - 
Les hooks d’exécution doivent être écrits au format de scripts shell exécutables.
 - 
La taille du script est limitée à 96 Ko.
 - 
Les paramètres de hook d'exécution et tous les critères de correspondance sont utilisés pour déterminer quels hooks sont applicables à une opération de snapshot, de sauvegarde ou de restauration.
 
| 
 | 
Les hooks d’exécution peuvent réduire ou désactiver les fonctionnalités de l’application. Faites fonctionner vos crochets personnalisés le plus rapidement possible. Si vous démarrez une opération de sauvegarde ou de snapshot avec des hooks d'exécution associés, mais que vous l'annulez ensuite, les hooks sont toujours autorisés à s'exécuter si l'opération de sauvegarde ou de snapshot a déjà commencé. Cela signifie que la logique utilisée dans un hook d’exécution post-sauvegarde ne peut pas supposer que la sauvegarde a été terminée. | 
Filtres de crochet d'exécution
Lorsque vous ajoutez ou modifiez un hook d'exécution pour une application, vous pouvez ajouter des filtres au hook d'exécution pour gérer les conteneurs auxquels le hook correspondra. Les filtres sont utiles pour les applications qui utilisent la même image de conteneur sur tous les conteneurs, mais peuvent utiliser chaque image à des fins différentes (comme Elasticsearch). Les filtres vous permettent de créer des scénarios dans lesquels les hooks d'exécution s'exécutent sur certains conteneurs identiques, mais pas nécessairement sur tous. Si vous créez plusieurs filtres pour un seul hook d'exécution, ils sont combinés avec un opérateur AND logique. Vous pouvez avoir jusqu'à 10 filtres actifs par hook d'exécution.
Chaque filtre que vous ajoutez à un hook d’exécution utilise une expression régulière pour faire correspondre les conteneurs de votre cluster. Lorsqu'un hook correspond à un conteneur, le hook exécutera son script associé sur ce conteneur. Les expressions régulières pour les filtres utilisent la syntaxe d'expression régulière 2 (RE2), qui ne prend pas en charge la création d'un filtre excluant les conteneurs de la liste des correspondances. Pour plus d'informations sur la syntaxe prise en charge par NetApp Backup and Recovery pour les expressions régulières dans les filtres de hook d'exécution, consultez "Prise en charge de la syntaxe des expressions régulières 2 (RE2)" .
| 
 | 
Si vous ajoutez un filtre d'espace de noms à un hook d'exécution qui s'exécute après une opération de restauration ou de clonage et que la source et la destination de restauration ou de clonage se trouvent dans des espaces de noms différents, le filtre d'espace de noms est appliqué uniquement à l'espace de noms de destination. | 
Exemples de crochets d'exécution
Visitez le "Projet GitHub NetApp Verda" pour télécharger de véritables hooks d'exécution pour des applications populaires telles qu'Apache Cassandra et Elasticsearch. Vous pouvez également voir des exemples et obtenir des idées pour structurer vos propres hooks d'exécution personnalisés.
Créer un modèle de hook d'exécution
Vous pouvez créer un modèle de hook d’exécution personnalisé que vous pouvez utiliser pour effectuer des actions avant ou après une opération de protection des données sur une application.
- 
Dans la console, accédez à Protection > Sauvegarde et récupération.
 - 
Sélectionnez l'onglet Paramètres.
 - 
Développez la section Modèle de hook d'exécution.
 - 
Sélectionnez Créer un modèle de hook d'exécution.
 - 
Entrez un nom pour le hook d’exécution.
 - 
Vous pouvez également choisir un type de hook. Par exemple, un hook post-restauration est exécuté une fois l'opération de restauration terminée.
 - 
Dans la zone de texte Script, saisissez le script shell exécutable que vous souhaitez exécuter dans le cadre du modèle de hook d'exécution. Vous pouvez également sélectionner Télécharger le script pour télécharger un fichier de script à la place.
 - 
Sélectionnez Créer.
Une fois le modèle créé, il apparaît dans la liste des modèles dans la section Modèle de hook d'exécution.