Gérer les crochets d'exécution de l'application
Un crochet d'exécution est une action personnalisée que vous pouvez configurer pour s'exécuter conjointement avec une opération de protection des données d'une application gérée. Par exemple, si vous disposez d'une application de base de données, vous pouvez utiliser un crochet d'exécution pour suspendre toutes les transactions de base de données avant un instantané et reprendre les transactions une fois l'instantané terminé. Les snapshots sont ainsi cohérents au niveau des applications.
Types de crochets d'exécution
Astra Control prend en charge les types de crochets d'exécution suivants, en fonction du moment où ils peuvent être exécutés :
-
Pré-instantané
-
Post-snapshot
-
Avant sauvegarde
-
Post-sauvegarde
-
Post-restauration
-
Après le basculement
Filtres de crochet d'exécution
Lorsque vous ajoutez ou modifiez un crochet d'exécution à une application, vous pouvez ajouter des filtres à un crochet d'exécution pour gérer les conteneurs auxquels le crochet correspond. Les filtres sont utiles pour les applications qui utilisent la même image de conteneur sur tous les conteneurs, mais ils peuvent utiliser chaque image à des fins différentes (comme Elasticsearch). Les filtres vous permettent de créer des scénarios dans lesquels des crochets d'exécution s'exécutent sur certains conteneurs, mais pas nécessairement tous identiques. Si vous créez plusieurs filtres pour un seul crochet d'exécution, ils sont combinés avec un opérateur ET logique. Vous pouvez avoir jusqu'à 10 filtres actifs par crochet d'exécution.
Chaque filtre que vous ajoutez à un crochet d'exécution utilise une expression régulière pour faire correspondre les conteneurs de votre cluster. Lorsqu'un crochet correspond à un conteneur, le crochet exécute son script associé sur ce conteneur. Les expressions régulières pour les filtres utilisent la syntaxe de l'expression régulière 2 (RE2), qui ne prend pas en charge la création d'un filtre qui exclut les conteneurs de la liste des correspondances. Pour plus d'informations sur la syntaxe prise en charge par Astra Control pour les expressions régulières dans les filtres de crochet d'exécution, voir "Prise en charge de la syntaxe de l'expression régulière 2 (RE2)".
Si vous ajoutez un filtre d'espace de noms à un crochet 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 sont dans des espaces de noms différents, le filtre d'espace de noms est appliqué uniquement à l'espace de noms de destination. |
Remarques importantes sur les crochets d'exécution personnalisés
Lors de la planification de crochets d'exécution pour vos applications, tenez compte des points suivants.
Puisque les crochets d'exécution réduisent ou désactivent complètement la fonctionnalité de l'application contre laquelle ils s'exécutent, vous devez toujours essayer de réduire le temps d'exécution de vos crochets personnalisés. |
-
Un crochet d'exécution doit utiliser un script pour effectuer des actions. De nombreux crochets d'exécution peuvent référencer le même script.
-
Astra Control exige que les scripts utilisés par les crochets d'exécution soient écrits au format de scripts shell exécutables.
-
La taille du script est limitée à 96 Ko.
-
Astra Control utilise les paramètres de crochet d'exécution et tout critère de correspondance pour déterminer quels crochets s'appliquent à une opération de snapshot, de sauvegarde ou de restauration.
-
Toutes les défaillances de crochet d'exécution sont des pannes logicielles ; d'autres crochets et l'opération de protection des données sont toujours tentées même en cas de défaillance d'un crochet. Cependant, lorsqu'un crochet échoue, un événement d'avertissement est enregistré dans le journal des événements de la page activité.
-
Pour créer, modifier ou supprimer des crochets d'exécution, vous devez être un utilisateur disposant des autorisations propriétaire, administrateur ou membre.
-
Si l'exécution d'un crochet d'exécution prend plus de 25 minutes, le crochet échoue, créant une entrée de journal d'événements avec un code retour « N/A ». Tout instantané affecté expire et sera marqué comme ayant échoué, avec une entrée du journal des événements qui en résulte indiquant le délai d'attente.
-
Pour les opérations de protection des données ad hoc, tous les événements hook sont générés et enregistrés dans le journal des événements de la page Activity. Cependant, pour les opérations planifiées de protection des données, seuls les événements de défaillance de type « hook » sont enregistrés dans le journal des événements (les événements générés par les opérations de protection des données planifiées sont toujours enregistrés).
-
Si Astra Control Center bascule une application source répliquée vers l'application de destination, tous les crochets d'exécution post-basculement activés pour l'application source sont exécutés pour l'application de destination une fois le basculement terminé.
Si vous avez exécuté des crochets de post-restauration avec Astra Control Center 23.04 et mis à niveau votre Astra Control Center vers la version 23.07, les crochets d'exécution post-restauration ne seront plus exécutés après une réplication de basculement. Vous devez créer de nouveaux crochets d'exécution post-basculement pour vos applications. Vous pouvez également remplacer le type d'opération des crochets post-restauration existants destinés aux basculements par « post-restauration » ou « post-basculement ».
Ordre d'exécution
Lors de l'exécution d'une opération de protection des données, les événements de hook d'exécution ont lieu dans l'ordre suivant :
-
Tous les crochets d'exécution de pré-opération personnalisés applicables sont exécutés sur les conteneurs appropriés. Vous pouvez créer et exécuter autant de crochets de pré-opération personnalisés que vous le souhaitez, mais l'ordre d'exécution de ces crochets avant que l'opération ne soit ni garantie ni configurable.
-
L'opération de protection des données est effectuée.
-
Tous les crochets d'exécution de post-opération personnalisés applicables sont exécutés sur les conteneurs appropriés. Vous pouvez créer et exécuter autant de crochets post-opération personnalisés que vous le souhaitez, mais l'ordre d'exécution de ces crochets après l'opération n'est ni garanti ni configurable.
Si vous créez plusieurs crochets d'exécution du même type (par exemple, pré-instantané), l'ordre d'exécution de ces crochets n'est pas garanti. Cependant, l'ordre d'exécution des crochets de différents types est garanti. Par exemple, l'ordre d'exécution d'une configuration ayant tous les types de crochets se présente comme suit :
-
Crochets de pré-secours exécutés
-
Crochets pré-instantanés exécutés
-
Crochets post-snapshot exécutés
-
Crochets post-secours exécutés
-
Crochets post-restauration exécutés
Vous pouvez voir un exemple de cette configuration dans le scénario numéro 2 dans le tableau de la Déterminez si un crochet va courir.
Vous devez toujours tester vos scripts d'exécution avant de les activer dans un environnement de production. Vous pouvez utiliser la commande 'kubectl exec' pour tester aisément les scripts. Une fois que vous avez activé les crochets d'exécution dans un environnement de production, testez les snapshots et les sauvegardes obtenus pour vous assurer qu'ils sont cohérents. Pour ce faire, vous pouvez cloner l'application dans un espace de noms temporaire, restaurer le snapshot ou la sauvegarde, puis tester l'application. |
Déterminez si un crochet va courir
Utilisez le tableau suivant pour déterminer si un crochet d'exécution personnalisé sera exécuté pour votre application.
Notez que toutes les opérations générales liées aux applications consistent à exécuter l'une des opérations de base de la copie Snapshot, de la sauvegarde ou de la restauration. Selon le scénario, une opération de clonage peut se composer de différentes combinaisons de ces opérations, de sorte que les crochets d'exécution d'une opération de clonage varient.
Les opérations de restauration sur place requièrent un snapshot ou une sauvegarde existante. Elles n'exécutent donc pas de snapshot ni de crochets de sauvegarde.
Si vous démarrez mais annulez ensuite une sauvegarde qui inclut un instantané et qu'il y a des crochets d'exécution associés, certains crochets peuvent s'exécuter, et d'autres peuvent ne pas. Autrement dit, un crochet d'exécution post-sauvegarde ne peut pas présumer que la sauvegarde est terminée. Gardez à l'esprit les points suivants pour les sauvegardes annulées avec les crochets d'exécution associés :
|
Scénario | Fonctionnement | Snapshot existant | Sauvegarde existante | Espace de noms | Cluster | Les crochets de snapshot sont exécutés | Les crochets de secours sont en place | Restaurer la course des crochets | Les crochets de basculement s'exécutent |
---|---|---|---|---|---|---|---|---|---|
1 |
Clonage |
N |
N |
Nouveau |
Identique |
Y |
N |
Y |
N |
2 |
Clonage |
N |
N |
Nouveau |
Différente |
Y |
Y |
Y |
N |
3 |
Cloner ou restaurer |
Y |
N |
Nouveau |
Identique |
N |
N |
Y |
N |
4 |
Cloner ou restaurer |
N |
Y |
Nouveau |
Identique |
N |
N |
Y |
N |
5 |
Cloner ou restaurer |
Y |
N |
Nouveau |
Différente |
N |
N |
Y |
N |
6 |
Cloner ou restaurer |
N |
Y |
Nouveau |
Différente |
N |
N |
Y |
N |
7 |
Restaurer |
Y |
N |
Existant |
Identique |
N |
N |
Y |
N |
8 |
Restaurer |
N |
Y |
Existant |
Identique |
N |
N |
Y |
N |
9 |
Snapshot |
S/O |
S/O |
S/O |
S/O |
Y |
S/O |
S/O |
N |
10 |
Sauvegarde |
N |
S/O |
S/O |
S/O |
Y |
Y |
S/O |
N |
11 |
Sauvegarde |
Y |
S/O |
S/O |
S/O |
N |
N |
S/O |
N |
12 |
Basculement |
Y |
S/O |
Créé par réplication |
Différente |
N |
N |
N |
Y |
13 |
Basculement |
Y |
S/O |
Créé par réplication |
Identique |
N |
N |
N |
Y |
Exemples de crochet d'exécution
Consultez le "Projet GitHub NetApp Verda" Pour télécharger des crochets d'exécution réels pour des applications courantes telles qu'Apache Cassandra et Elasticsearch. Vous pouvez également voir des exemples et obtenir des idées pour structurer vos propres crochets d'exécution personnalisés.
Afficher les crochets d'exécution existants
Vous pouvez afficher les crochets d'exécution personnalisés existants pour une application.
-
Accédez à applications, puis sélectionnez le nom d'une application gérée.
-
Sélectionnez l'onglet crochets d'exécution.
Vous pouvez afficher tous les crochets d'exécution activés ou désactivés dans la liste résultante. Vous pouvez voir l'état d'un crochet, le nombre de conteneurs correspondant, le temps de création et le moment où il s'exécute (pré ou post-opération). Vous pouvez sélectionner le
+
icône en regard du nom du crochet pour développer la liste des conteneurs sur lequel il sera exécuté. Pour afficher les journaux d'événements entourant les crochets d'exécution de cette application, accédez à l'onglet activité.
Afficher les scripts existants
Vous pouvez afficher les scripts chargés existants. Vous pouvez également voir quels scripts sont en cours d'utilisation, et quels crochets les utilisent, sur cette page.
-
Accédez à compte.
-
Sélectionnez l'onglet scripts.
Cette page affiche la liste des scripts chargés existants. La colonne utilisé par indique les crochets d'exécution qui utilisent chaque script.
Ajouter un script
Chaque crochet d'exécution doit utiliser un script pour effectuer des actions. Vous pouvez ajouter un ou plusieurs scripts que les crochets d'exécution peuvent référencer. De nombreux crochets d'exécution peuvent référencer le même script ; ceci vous permet de mettre à jour de nombreux crochets d'exécution en modifiant un seul script.
-
Accédez à compte.
-
Sélectionnez l'onglet scripts.
-
Sélectionnez Ajouter.
-
Effectuez l'une des opérations suivantes :
-
Charger un script personnalisé.
-
Sélectionnez l'option Télécharger le fichier.
-
Accédez à un fichier et téléchargez-le.
-
Donnez un nom unique au script.
-
(Facultatif) Entrez toutes les notes que les autres administrateurs doivent connaître au sujet du script.
-
Sélectionnez Enregistrer le script.
-
-
Coller dans un script personnalisé à partir du presse-papiers.
-
Sélectionnez l'option Coller ou type.
-
Sélectionnez le champ de texte et collez le texte du script dans le champ.
-
Donnez un nom unique au script.
-
(Facultatif) Entrez toutes les notes que les autres administrateurs doivent connaître au sujet du script.
-
-
-
Sélectionnez Enregistrer le script.
Le nouveau script apparaît dans la liste de l'onglet scripts.
Supprimer un script
Vous pouvez supprimer un script du système s'il n'est plus nécessaire et s'il n'est pas utilisé par les crochets d'exécution.
-
Accédez à compte.
-
Sélectionnez l'onglet scripts.
-
Choisissez un script à supprimer et sélectionnez le menu dans la colonne actions.
-
Sélectionnez Supprimer.
Si le script est associé à un ou plusieurs crochets d'exécution, l'action Delete n'est pas disponible. Pour supprimer le script, modifiez d'abord les crochets d'exécution associés et associez-les à un autre script. |
Créer un crochet d'exécution personnalisé
Vous pouvez créer un crochet d'exécution personnalisé pour une application et l'ajouter à Astra Control. Reportez-vous à la section Exemples de crochet d'exécution pour des exemples de crochet. Vous devez disposer d'autorisations propriétaire, administrateur ou membre pour créer des crochets d'exécution.
Lorsque vous créez un script de shell personnalisé à utiliser comme crochet d'exécution, n'oubliez pas de spécifier le shell approprié au début du fichier, sauf si vous exécutez des commandes spécifiques ou fournissez le chemin complet à un exécutable. |
-
Sélectionnez applications, puis le nom d'une application gérée.
-
Sélectionnez l'onglet crochets d'exécution.
-
Sélectionnez Ajouter.
-
Dans la zone Détails du crochet :
-
Déterminez quand le crochet doit fonctionner en sélectionnant un type d'opération dans le menu déroulant opération.
-
Saisissez un nom unique pour le crochet.
-
(Facultatif) saisissez les arguments à transmettre au crochet pendant l'exécution, en appuyant sur la touche entrée après chaque argument que vous entrez pour enregistrer chacun.
-
-
(Facultatif) dans la zone Détails du filtre de crochet, vous pouvez ajouter des filtres pour contrôler les conteneurs sur lesquels le crochet d'exécution s'exécute :
-
Sélectionnez Ajouter filtre.
-
Dans la colonne Type de filtre Hook, choisissez un attribut sur lequel filtrer dans le menu déroulant.
-
Dans la colonne Regex, entrez une expression régulière à utiliser comme filtre. Astra Control utilise le "Expression régulière 2 (RE2) syntaxe regex".
Si vous filtrez sur le nom exact d'un attribut (tel qu'un nom de pod) sans autre texte dans le champ expression régulière, une correspondance de sous-chaîne est effectuée. Pour faire correspondre un nom exact et ce nom uniquement, utilisez la syntaxe de correspondance de chaîne exacte (par exemple, ^exact_podname$
). -
Pour ajouter d'autres filtres, sélectionnez Ajouter filtre.
Plusieurs filtres pour un crochet d'exécution sont combinés à un opérateur ET logique. Vous pouvez avoir jusqu'à 10 filtres actifs par crochet d'exécution.
-
-
Lorsque vous avez terminé, sélectionnez Suivant.
-
Dans la zone script, effectuez l'une des opérations suivantes :
-
Ajouter un nouveau script.
-
Sélectionnez Ajouter.
-
Effectuez l'une des opérations suivantes :
-
Charger un script personnalisé.
-
Sélectionnez l'option Télécharger le fichier.
-
Accédez à un fichier et téléchargez-le.
-
Donnez un nom unique au script.
-
(Facultatif) Entrez toutes les notes que les autres administrateurs doivent connaître au sujet du script.
-
Sélectionnez Enregistrer le script.
-
-
Coller dans un script personnalisé à partir du presse-papiers.
-
Sélectionnez l'option Coller ou type.
-
Sélectionnez le champ de texte et collez le texte du script dans le champ.
-
Donnez un nom unique au script.
-
(Facultatif) Entrez toutes les notes que les autres administrateurs doivent connaître au sujet du script.
-
-
-
-
Sélectionnez un script existant dans la liste.
Cela indique au crochet d'exécution d'utiliser ce script.
-
-
Sélectionnez Suivant.
-
Vérifiez la configuration du crochet d'exécution.
-
Sélectionnez Ajouter.
Vérifier l'état d'un crochet d'exécution
Une fois qu'une opération de snapshot, de sauvegarde ou de restauration a terminé, vous pouvez vérifier l'état des crochets d'exécution qui ont été exécutés dans le cadre de l'opération. Vous pouvez utiliser ces informations d'état pour déterminer si vous souhaitez maintenir le crochet d'exécution, le modifier ou le supprimer.
-
Sélectionnez applications, puis le nom d'une application gérée.
-
Sélectionnez l'onglet protection des données.
-
Sélectionnez snapshots pour voir exécution de snapshots ou sauvegardes pour voir exécution de sauvegardes.
L'état Hook indique l'état de la séquence de crochet d'exécution une fois l'opération terminée. Vous pouvez passer le curseur de la souris sur l'état pour plus de détails. Par exemple, si des échecs de crochet d'exécution se produisent au cours d'un snapshot, le fait de passer le curseur sur l'état de crochet pour ce snapshot donne une liste des crochets d'exécution ayant échoué. Pour voir les raisons de chaque échec, vous pouvez consulter la page activité dans la zone de navigation de gauche.
Afficher l'utilisation du script
Vous pouvez voir quels crochets d'exécution utilisent un script particulier dans l'interface utilisateur Web Astra Control.
-
Sélectionnez compte.
-
Sélectionnez l'onglet scripts.
La colonne utilisé par de la liste des scripts contient des détails sur les crochets qui utilisent chaque script de la liste.
-
Sélectionnez les informations de la colonne utilisé par pour un script qui vous intéresse.
Une liste plus détaillée s'affiche, avec les noms des crochets qui utilisent le script et le type d'opération avec lesquels ils sont configurés pour s'exécuter.
Modifier un crochet d'exécution
Vous pouvez modifier un crochet d'exécution si vous souhaitez modifier ses attributs, filtres ou le script qu'il utilise. Vous devez disposer d'autorisations propriétaire, administrateur ou membre pour modifier les crochets d'exécution.
-
Sélectionnez applications, puis le nom d'une application gérée.
-
Sélectionnez l'onglet crochets d'exécution.
-
Sélectionnez le menu Options dans la colonne actions pour un crochet que vous souhaitez modifier.
-
Sélectionnez Modifier.
-
Apportez les modifications nécessaires en sélectionnant Suivant après avoir terminé chaque section.
-
Sélectionnez Enregistrer.
Désactivez un crochet d'exécution
Vous pouvez désactiver un crochet d'exécution si vous souhaitez l'empêcher temporairement de s'exécuter avant ou après un instantané d'une application. Vous devez disposer d'autorisations propriétaire, administrateur ou membre pour désactiver les crochets d'exécution.
-
Sélectionnez applications, puis le nom d'une application gérée.
-
Sélectionnez l'onglet crochets d'exécution.
-
Sélectionnez le menu Options dans la colonne actions pour un crochet que vous souhaitez désactiver.
-
Sélectionnez Désactiver.
Supprimer un crochet d'exécution
Vous pouvez supprimer entièrement un crochet d'exécution si vous n'en avez plus besoin. Vous devez disposer d'autorisations propriétaire, administrateur ou membre pour supprimer les crochets d'exécution.
-
Sélectionnez applications, puis le nom d'une application gérée.
-
Sélectionnez l'onglet crochets d'exécution.
-
Sélectionnez le menu Options dans la colonne actions pour un crochet que vous souhaitez supprimer.
-
Sélectionnez Supprimer.
-
Dans la boîte de dialogue qui s'affiche, tapez « Supprimer » pour confirmer.
-
Sélectionnez Oui, supprimez le crochet d'exécution.