Gestisci i modelli di hook di esecuzione di NetApp Backup and Recovery per i carichi di lavoro Kubernetes
Un hook di esecuzione è un'azione personalizzata che è possibile configurare per essere eseguita insieme a un'operazione di protezione dei dati di un'applicazione Kubernetes gestita. Ad esempio, se si dispone di un'app di database, è possibile utilizzare un hook di esecuzione per mettere in pausa tutte le transazioni del database prima di uno snapshot e riprendere le transazioni al termine dello snapshot. Ciò garantisce snapshot coerenti con l'applicazione. Quando si crea un modello di hook di esecuzione, è possibile specificare il tipo di hook, lo script da eseguire e tutti i filtri che determinano a quali contenitori applicare l'hook. È quindi possibile utilizzare il modello per associare gli hook di esecuzione alle applicazioni.
|
Per impostazione predefinita, NetApp Backup and Recovery blocca e sblocca automaticamente i file system per determinate applicazioni, come KubeVirt, durante le operazioni di protezione dei dati. È possibile disattivare questo comportamento a livello globale o per applicazioni specifiche seguendo le istruzioni contenute nella documentazione di Trident Protect:
|
Amministratore dell'organizzazione o amministratore SnapCenter . "Scopri di più sui ruoli di accesso a NetApp Backup and Recovery" . "Scopri di più sui ruoli di accesso alla console NetApp per tutti i servizi" .
Tipi di ganci di esecuzione
NetApp Backup and Recovery supporta i seguenti tipi di hook di esecuzione, in base al momento in cui possono essere eseguiti:
-
Pre-istantanea
-
Post-istantanea
-
Pre-backup
-
Post-backup
-
Post-ripristino
Ordine di esecuzione
Quando viene eseguita un'operazione di protezione dei dati, gli eventi di hook di esecuzione si verificano nel seguente ordine:
-
Tutti gli hook di esecuzione pre-operazione personalizzati applicabili vengono eseguiti sui contenitori appropriati. È possibile creare ed eseguire tutti i hook pre-operazione personalizzati di cui si ha bisogno, ma l'ordine di esecuzione di questi hook prima dell'operazione non è né garantito né configurabile.
-
Se applicabile, si verificano blocchi del file system.
-
L'operazione di protezione dei dati è eseguita.
-
I file system congelati vengono sbloccati, se applicabile.
-
Tutti gli hook di esecuzione post-operazione personalizzati applicabili vengono eseguiti sui contenitori appropriati. È possibile creare ed eseguire tutti i hook post-operazione personalizzati di cui si ha bisogno, ma l'ordine di esecuzione di questi hook dopo l'operazione non è né garantito né configurabile.
Se si creano più hook di esecuzione dello stesso tipo (ad esempio, pre-snapshot), l'ordine di esecuzione di tali hook non è garantito. Tuttavia, l'ordine di esecuzione dei ganci di diverso tipo è garantito. Ad esempio, ecco l'ordine di esecuzione di una configurazione che presenta tutti i diversi tipi di hook:
-
Eseguiti i pre-snapshot hook
-
Eseguiti i ganci post-snapshot
-
Hook pre-backup eseguiti
-
Hook post-backup eseguiti
|
Dovresti sempre testare gli script di esecuzione prima di abilitarli in un ambiente di produzione. È possibile utilizzare il comando 'kubectl exec' per testare comodamente gli script. Dopo aver abilitato gli hook di esecuzione in un ambiente di produzione, testare gli snapshot e i backup risultanti per assicurarsi che siano coerenti. È possibile farlo clonando l'app in uno spazio dei nomi temporaneo, ripristinando lo snapshot o il backup e quindi testando l'app. |
|
Se un hook di esecuzione pre-snapshot aggiunge, modifica o rimuove risorse Kubernetes, tali modifiche vengono incluse nello snapshot o nel backup e in qualsiasi successiva operazione di ripristino. |
Note importanti sui ganci di esecuzione personalizzati
Quando pianifichi gli hook di esecuzione per le tue app, tieni presente quanto segue.
-
Un hook di esecuzione deve utilizzare uno script per eseguire azioni. Molti hook di esecuzione possono fare riferimento allo stesso script.
-
Gli hook di esecuzione devono essere scritti nel formato degli script shell eseguibili.
-
La dimensione dello script è limitata a 96 KB.
-
Le impostazioni dell'hook di esecuzione e tutti i criteri corrispondenti vengono utilizzati per determinare quali hook sono applicabili a un'operazione di snapshot, backup o ripristino.
|
Poiché gli hook di esecuzione spesso riducono o disabilitano completamente la funzionalità dell'applicazione su cui vengono eseguiti, dovresti sempre cercare di ridurre al minimo il tempo impiegato per l'esecuzione degli hook di esecuzione personalizzati. Se si avvia un'operazione di backup o snapshot con hook di esecuzione associati ma poi la si annulla, gli hook possono comunque essere eseguiti se l'operazione di backup o snapshot è già iniziata. Ciò significa che la logica utilizzata in un hook di esecuzione post-backup non può presumere che il backup sia stato completato. |
Filtri di hook di esecuzione
Quando aggiungi o modifichi un hook di esecuzione per un'applicazione, puoi aggiungere filtri all'hook di esecuzione per gestire i contenitori a cui l'hook corrisponderà. I filtri sono utili per le applicazioni che utilizzano la stessa immagine contenitore su tutti i contenitori, ma potrebbero utilizzare ciascuna immagine per uno scopo diverso (ad esempio Elasticsearch). I filtri consentono di creare scenari in cui gli hook di esecuzione vengono eseguiti su alcuni contenitori identici, ma non necessariamente su tutti. Se si creano più filtri per un singolo hook di esecuzione, questi vengono combinati con un operatore logico AND. È possibile avere fino a 10 filtri attivi per ogni hook di esecuzione.
Ogni filtro aggiunto a un hook di esecuzione utilizza un'espressione regolare per abbinare i contenitori nel cluster. Quando un hook corrisponde a un contenitore, eseguirà lo script associato su quel contenitore. Le espressioni regolari per i filtri utilizzano la sintassi Regular Expression 2 (RE2), che non supporta la creazione di un filtro che escluda i contenitori dall'elenco delle corrispondenze. Per informazioni sulla sintassi supportata da NetApp Backup and Recovery per le espressioni regolari nei filtri di hook di esecuzione, vedere "Supporto della sintassi Regular Expression 2 (RE2)" .
|
Se si aggiunge un filtro namespace a un hook di esecuzione eseguito dopo un'operazione di ripristino o clonazione e l'origine e la destinazione del ripristino o della clonazione si trovano in namespace diversi, il filtro namespace viene applicato solo al namespace di destinazione. |
Esempi di hook di esecuzione
Visita il "Progetto GitHub NetApp Verda" per scaricare veri e propri hook di esecuzione per app popolari come Apache Cassandra ed Elasticsearch. Puoi anche vedere esempi e trarre spunti per strutturare i tuoi hook di esecuzione personalizzati.
Creare un modello di hook di esecuzione
È possibile creare un modello di hook di esecuzione personalizzato da utilizzare per eseguire azioni prima o dopo un'operazione di protezione dei dati su un'applicazione.
-
Nella Console, vai a Protezione > Backup e ripristino.
-
Selezionare la scheda Impostazioni.
-
Espandi la sezione Modello di hook di esecuzione.
-
Selezionare Crea modello di hook di esecuzione.
-
Immettere un nome per l'hook di esecuzione.
-
Facoltativamente, scegli un tipo di hook. Ad esempio, un hook post-restore viene eseguito al termine dell'operazione di ripristino.
-
Nella casella di testo Script, immettere lo script shell eseguibile che si desidera eseguire come parte del modello di hook di esecuzione. Facoltativamente, puoi selezionare Carica script per caricare un file di script.
-
Seleziona Crea.
Il modello viene creato e appare nell'elenco dei modelli nella sezione Modello di hook di esecuzione.