Proteggi le applicazioni utilizzando Trident Protect
È possibile proteggere tutte le app gestite da Trident Protect eseguendo snapshot e backup utilizzando una policy di protezione automatizzata o su base ad hoc.
|
|
È possibile configurare Trident Protect per congelare e scongelare i filesystem durante le operazioni di protezione dei dati. "Scopri di più sulla configurazione del congelamento del filesystem con Trident Protect". |
Crea un'istantanea su richiesta
È possibile creare una snapshot su richiesta in qualsiasi momento.
|
|
Le risorse con ambito cluster vengono incluse in un backup, snapshot o clone se sono esplicitamente referenziate nella definizione dell'applicazione o se hanno riferimenti a uno qualsiasi degli spazi dei nomi dell'applicazione. |
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-snapshot-cr.yaml. -
Nel file che hai creato, configura i seguenti attributi:
-
metadata.name: (Obbligatorio) Il nome di questa risorsa personalizzata; scegli un nome univoco e sensato per il tuo ambiente.
-
spec.applicationRef: Nome Kubernetes dell'applicazione di cui eseguire lo Snapshot.
-
spec.appVaultRef: (Obbligatorio) Il nome del AppVault in cui i contenuti dello snapshot (metadati) devono essere archiviati.
-
spec.reclaimPolicy: (Facoltativo) Definisce cosa succede all'AppArchive di uno snapshot quando il CR dello snapshot viene eliminato. Ciò significa che anche quando impostato su
Retain, lo snapshot verrà eliminato. Opzioni valide:-
Retain(predefinito) -
DeleteapiVersion: protect.trident.netapp.io/v1 kind: Snapshot metadata: namespace: my-app-namespace name: my-cr-name spec: applicationRef: my-application appVaultRef: appvault-name reclaimPolicy: Delete
-
-
-
Dopo aver popolato il
trident-protect-snapshot-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-snapshot-cr.yaml
-
Crea l'istantanea, sostituendo i valori tra parentesi con le informazioni del tuo ambiente. Ad esempio:
tridentctl-protect create snapshot <my_snapshot_name> --appvault <my_appvault_name> --app <name_of_app_to_snapshot> -n <application_namespace>
Crea un backup su richiesta
È possibile eseguire il backup di un'app in qualsiasi momento.
|
|
Le risorse con ambito cluster vengono incluse in un backup, snapshot o clone se sono esplicitamente referenziate nella definizione dell'applicazione o se hanno riferimenti a uno qualsiasi degli spazi dei nomi dell'applicazione. |
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di backup s3 di lunga durata. Se il token scade durante l'operazione di backup, l'operazione può fallire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione IAM AWS" per ulteriori informazioni sulle credenziali con le risorse AWS.
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-backup-cr.yaml. -
Nel file che hai creato, configura i seguenti attributi:
-
metadata.name: (Obbligatorio) Il nome di questa risorsa personalizzata; scegli un nome univoco e sensato per il tuo ambiente.
-
spec.applicationRef: (Obbligatorio) Il nome Kubernetes dell'applicazione di cui eseguire il backup.
-
spec.appVaultRef: (Required) Il nome del AppVault in cui devono essere archiviati i contenuti del backup.
-
spec.dataMover: (Opzionale) Una stringa che indica quale strumento di backup utilizzare per l'operazione di backup. Valori possibili (case sensitive):
-
Restic -
Kopia(predefinito)
-
-
spec.reclaimPolicy: (Opzionale) Definisce cosa succede a un backup quando viene rilasciato dalla sua richiesta. Valori possibili:
-
Delete -
Retain(predefinito)
-
-
spec.snapshotRef: (Opzionale): Nome dell'istantanea da usare come origine del backup. Se non fornito, verrà creata un'istantanea temporanea e verrà eseguito il backup.
Esempio YAML:
--- apiVersion: protect.trident.netapp.io/v1 kind: Backup metadata: namespace: my-app-namespace name: my-cr-name spec: applicationRef: my-application appVaultRef: appvault-name dataMover: Kopia -
-
Dopo aver popolato il
trident-protect-backup-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-backup-cr.yaml
-
Crea il backup, sostituendo i valori tra parentesi con le informazioni del tuo ambiente. Ad esempio:
tridentctl-protect create backup <my_backup_name> --appvault <my-vault-name> --app <name_of_app_to_back_up> --data-mover <Kopia_or_Restic> -n <application_namespace>È possibile utilizzare facoltativamente il
--full-backupflag per specificare se un backup deve essere non incrementale. Per impostazione predefinita, tutti i backup sono incrementali. Quando si utilizza questo flag, il backup diventa non incrementale. È best practice eseguire periodicamente un backup completo e poi eseguire backup incrementali tra un backup completo e l'altro per ridurre al minimo il rischio associato ai ripristini.
Annotazioni di backup supportate
La tabella seguente descrive le annotazioni che puoi utilizzare quando crei un backup CR:
| Annotazione | Tipo | Descrizione | Valore predefinito |
|---|---|---|---|
protect.trident.netapp.io/full-backup |
stringa |
Specifica se un backup deve essere non incrementale. Impostare su |
"false" |
protect.trident.netapp.io/snapshot-completion-timeout |
stringa |
Il tempo massimo consentito per il completamento dell'operazione di snapshot complessiva. |
"60m" |
protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout |
stringa |
Tempo massimo consentito affinché gli snapshot del volume raggiungano lo stato pronto all'uso. |
"30m" |
protect.trident.netapp.io/volume-snapshots-created-timeout |
stringa |
Il tempo massimo consentito per la creazione di snapshot del volume. |
"5m" |
protect.trident.netapp.io/pvc-bind-timeout-sec |
stringa |
Tempo massimo (in secondi) di attesa affinché eventuali nuove PersistentVolumeClaims (PVC) raggiungano la fase |
"1200" (20 minuti) |
Crea una pianificazione della protezione dei dati
Una policy di protezione protegge un'app creando snapshot, backup o entrambi secondo una pianificazione definita. Puoi scegliere di creare snapshot e backup ogni ora, ogni giorno, ogni settimana e ogni mese, e puoi specificare il numero di copie da conservare. Puoi pianificare un backup completo non incrementale utilizzando l'annotazione full-backup-rule. Per impostazione predefinita, tutti i backup sono incrementali. Eseguire periodicamente un backup completo, insieme a backup incrementali tra un backup completo e l'altro, aiuta a ridurre il rischio associato ai ripristini.
|
|
|
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-schedule-cr.yaml. -
Nel file che hai creato, configura i seguenti attributi:
-
metadata.name: (Obbligatorio) Il nome di questa risorsa personalizzata; scegli un nome univoco e sensato per il tuo ambiente.
-
spec.dataMover: (Opzionale) Una stringa che indica quale strumento di backup utilizzare per l'operazione di backup. Valori possibili (case sensitive):
-
Restic -
Kopia(predefinito)
-
-
spec.applicationRef: il nome Kubernetes dell'applicazione di cui eseguire il backup.
-
spec.appVaultRef: (Required) Il nome del AppVault in cui devono essere archiviati i contenuti del backup.
-
spec.backupRetention: (Required) Il numero di backup da conservare. Zero indica che non devono essere creati backup (solo istantanee).
-
backupReclaimPolicy: (Opzionale) Determina cosa succede a un backup se il CR di backup viene eliminato durante il suo periodo di conservazione. Dopo il periodo di conservazione, i backup vengono sempre eliminati. Valori possibili (case sensitive):
-
Retain(predefinito) -
Delete
-
-
spec.snapshotRetention: (Required) Il numero di istantanee da conservare. Zero indica che non devono essere create istantanee.
-
snapshotReclaimPolicy: (Opzionale) Determina cosa succede a una snapshot se la CR della snapshot viene eliminata durante il suo periodo di conservazione. Dopo il periodo di conservazione, le snapshot vengono sempre eliminate. Valori possibili (case sensitive):
-
Retain -
Delete(predefinito)
-
-
spec.granularity: La frequenza con cui la pianificazione deve essere eseguita. Valori possibili, con i campi associati richiesti:
-
Hourly(richiede che tu specifichispec.minute) -
Daily(richiede che tu specifichispec.minuteespec.hour) -
Weekly(richiede che tu specifichispec.minute, spec.hour, espec.dayOfWeek) -
Monthly(richiede che tu specifichispec.minute, spec.hour, espec.dayOfMonth) -
Custom
-
-
spec.dayOfMonth: (Facoltativo) Il giorno del mese (1 - 31) in cui deve essere eseguita la pianificazione. Questo campo è obbligatorio se la granularità è impostata su
Monthly. Il valore deve essere fornito come stringa. -
spec.dayOfWeek: (Facoltativo) Il giorno della settimana (0 - 7) in cui deve essere eseguita la pianificazione. I valori 0 o 7 indicano la domenica. Questo campo è obbligatorio se la granularità è impostata su
Weekly. Il valore deve essere fornito come stringa. -
spec.hour: (Facoltativo) L'ora del giorno (0 - 23) in cui la pianificazione deve essere eseguita. Questo campo è obbligatorio se la granularità è impostata su
Daily,Weekly, oMonthly. Il valore deve essere fornito come stringa. -
spec.minute: (Facoltativo) Il minuto dell'ora (0 - 59) in cui la pianificazione deve essere eseguita. Questo campo è obbligatorio se la granularità è impostata su
Hourly,Daily,WeeklyoMonthly. Il valore deve essere fornito come stringa.Esempio YAML per la pianificazione di backup e snapshot:
--- apiVersion: protect.trident.netapp.io/v1 kind: Schedule metadata: namespace: my-app-namespace name: my-cr-name spec: dataMover: Kopia applicationRef: my-application appVaultRef: appvault-name backupRetention: "15" snapshotRetention: "15" granularity: Daily hour: "0" minute: "0"Esempio di YAML per la pianificazione solo snapshot:
--- apiVersion: protect.trident.netapp.io/v1 kind: Schedule metadata: namespace: my-app-namespace name: my-snapshot-schedule spec: applicationRef: my-application appVaultRef: appvault-name backupRetention: "0" snapshotRetention: "15" granularity: Daily hour: "2" minute: "0" -
-
Dopo aver popolato il
trident-protect-schedule-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-schedule-cr.yaml
-
Crea la pianificazione della protezione, sostituendo i valori tra parentesi con le informazioni del tuo ambiente. Ad esempio:
Puoi usare tridentctl-protect create schedule --helpper visualizzare informazioni di aiuto dettagliate per questo comando.tridentctl-protect create schedule <my_schedule_name> \ --appvault <my_appvault_name> \ --app <name_of_app_to_snapshot> \ --backup-retention <how_many_backups_to_retain> \ --backup-reclaim-policy <Retain|Delete (default Retain)> \ --data-mover <Kopia_or_Restic> \ --day-of-month <day_of_month_to_run_schedule> \ --day-of-week <day_of_week_to_run_schedule> \ --granularity <frequency_to_run> \ --hour <hour_of_day_to_run> \ --minute <minute_of_hour_to_run> \ --recurrence-rule <recurrence> \ --snapshot-retention <how_many_snapshots_to_retain> \ --snapshot-reclaim-policy <Retain|Delete (default Delete)> \ --full-backup-rule <string> \ --run-immediately <true|false> \ -n <application_namespace>I seguenti flag forniscono un controllo aggiuntivo sulla tua pianificazione:
-
Pianificazione backup completo: utilizzare il
--full-backup-ruleflag per pianificare backup completi non incrementali. Questo flag funziona solo con--granularity Daily. Valori possibili:-
Always: Crea un backup completo ogni giorno. -
Giorni feriali specifici: specificare uno o più giorni separati da virgole (ad esempio,
"Monday,Thursday"). Valori validi: lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica.Il --full-backup-ruleflag non funziona con la granularità oraria, settimanale o mensile.
-
-
Pianificazioni solo snapshot: imposta
--backup-retention 0e specifica un valore maggiore di zero per--snapshot-retention.
-
Annotazioni di pianificazione supportate
La tabella seguente descrive le annotazioni che è possibile utilizzare quando si crea una schedule CR:
| Annotazione | Tipo | Descrizione | Valore predefinito |
|---|---|---|---|
protect.trident.netapp.io/full-backup-rule |
stringa |
Specifica la regola per la pianificazione dei backup completi. Puoi impostarla su |
Non impostato (tutti i backup sono incrementali) |
protect.trident.netapp.io/snapshot-completion-timeout |
stringa |
Il tempo massimo consentito per il completamento dell'operazione di snapshot complessiva. |
"60m" |
protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout |
stringa |
Tempo massimo consentito affinché gli snapshot del volume raggiungano lo stato pronto all'uso. |
"30m" |
protect.trident.netapp.io/volume-snapshots-created-timeout |
stringa |
Il tempo massimo consentito per la creazione di snapshot del volume. |
"5m" |
protect.trident.netapp.io/pvc-bind-timeout-sec |
stringa |
Tempo massimo (in secondi) di attesa affinché eventuali nuove PersistentVolumeClaims (PVC) raggiungano la fase |
"1200" (20 minuti) |
Elimina una snapshot
Elimina gli snapshot pianificati o on-demand di cui non hai più bisogno.
-
Rimuovi lo snapshot CR associato allo snapshot:
kubectl delete snapshot <snapshot_name> -n my-app-namespace
Elimina un backup
Elimina i backup pianificati o on-demand di cui non hai più bisogno.
|
|
Assicurarsi che la policy di reclaim sia impostata su Delete per rimuovere tutti i dati di backup dallo storage a oggetti. L'impostazione predefinita della policy è Retain per evitare la perdita accidentale di dati. Se la policy non viene modificata su Delete, i dati di backup rimarranno nello storage a oggetti e richiederanno l'eliminazione manuale.
|
-
Rimuovi il CR di backup associato al backup:
kubectl delete backup <backup_name> -n my-app-namespace
Verificare lo stato di un'operazione di backup
È possibile utilizzare la riga di comando per verificare lo stato di un'operazione di backup in corso, completata o non riuscita.
-
Utilizzare il seguente comando per recuperare lo stato dell'operazione di backup, sostituendo i valori tra parentesi con le informazioni dal proprio ambiente:
kubectl get backup -n <namespace_name> <my_backup_cr_name> -o jsonpath='{.status}'
Abilita backup e ripristino per le operazioni azure-netapp-files (ANF)
Se hai installato Trident Protect, puoi abilitare la funzionalità di backup e ripristino efficiente in termini di spazio per i backend di storage che utilizzano la storage class azure-netapp-files e sono stati creati prima di Trident 24.06. Questa funzionalità funziona con volumi NFSv4 e non consuma spazio aggiuntivo dal pool di capacità.
Assicurarsi quanto segue:
-
Hai installato Trident Protect.
-
Hai definito un'applicazione in Trident Protect. Questa applicazione avrà funzionalità di protezione limitate finché non completi questa procedura.
-
Hai
azure-netapp-filesselezionato come classe di archiviazione predefinita per il tuo backend di archiviazione.
Espandi per i passaggi di configurazione
-
Eseguire le seguenti operazioni in Trident se il volume ANF è stato creato prima dell'aggiornamento a Trident 24.10:
-
Abilita la directory snapshot per ogni PV basato su azure-netapp-files e associato all'applicazione:
tridentctl update volume <pv name> --snapshot-dir=true -n trident -
Verificare che la directory snapshot sia stata abilitata per ciascun PV associato:
tridentctl get volume <pv name> -n trident -o yaml | grep snapshotDirRisposta:
snapshotDirectory: "true"
+
Quando la directory degli snapshot non è abilitata, Trident Protect seleziona la normale funzionalità di backup, che consuma temporaneamente spazio nel pool di capacità durante il processo di backup. In questo caso, assicurarsi che sia disponibile spazio sufficiente nel pool di capacità per creare un volume temporaneo delle stesse dimensioni del volume sottoposto a backup. -
L'applicazione è pronta per backup e ripristino tramite Trident Protect. Ogni PVC è disponibile anche per essere utilizzato da altre applicazioni per backup e ripristino.