Puoi eseguire il backup e il ripristino dati ibridi utilizzando CSI (Container Storage Interface). Il backup CSI genera snapshot dei dischi e li archivia come criptati in spazio di archiviazione sul cloud. Il backup CSI non richiede un bucket Google Cloud Storage o un server remoto per archiviare il backup e i dati di Google Cloud.
Il backup CSI è consigliato per le istanze ibride ospitate in Google Cloud, AWS o Azure.
In questa pagina vengono descritti i passaggi per utilizzare il backup e ripristino ibrido CSI. Per una panoramica del cloud ibrido eseguire il ripristino e il ripristino in generale, Panoramica del backup e ripristino di Cassandra.
Limitazioni di backup e ripristino
Tieni presente queste limitazioni quando utilizzi il backup e ripristino CSI:
- Il driver CSI utilizzato dalla classe di archiviazione configurata deve supportare gli snapshot CSI. Visualizza Elenco di driver CSI per Kubernetes per informazioni sul conducente.
- Non tutte le piattaforme sono supportate. Sono supportate solo le piattaforme Google Cloud, AWS e Azure.
- OpenShift Container Platform non è supportato a causa dello snapshot del volume limitazioni.
- Sono supportate solo le piattaforme cloud. Le piattaforme on-prem non sono supportate.
- I dati di backup CSI e i dati di backup ibridi non CSI non sono compatibili. I backup non CSI non possono essere utilizzati con Il ripristino CSI e i backup CSI non possono essere utilizzati con il ripristino non CSI.
- L'installazione e la funzionalità del driver CSI sono a carico del fornitore del driver CSI.
- Gli utenti sono responsabili di garantire che siano disponibili risorse cluster adeguate il provisioning degli snapshot CSI.
- Gli utenti sono responsabili della rimozione dei dati degli snapshot precedenti.
Configura i backup CSI
Per pianificare i backup ibridi utilizzando CSI, segui questi passaggi:
- Se non hai ancora configurato il backup ibrido:
- Esegui questo
create-service-account
per creare un account di servizio Google Cloud (SA) con il comandoroles/storage.objectAdmin
. Questo ruolo SA ti consente di scrivere dati di backup in Cloud Storage. Esegui questo comando nella directory appropriata per lo strumento di gestione:- Grafici Helm:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
apigeectl
:HYBRID_BASE_DIRECTORY/hybrid-files/
./tools/create-service-account --env non-prod --dir ./service-accounts
Questo comando crea un singolo account di servizio denominato
apigee-non-prod
per l'utilizzo in ambienti non di produzione e il file della chiave scaricato viene posizionato nell'intervallo./service-accounts
.Per ulteriori informazioni sugli account di servizio Google Cloud, consulta Creazione in corso e la gestione degli account di servizio.
- Grafici Helm:
- Il comando
create-service-account
salva un file JSON contenente chiave privata dell'account di servizio. Il file viene salvato nella stessa directory in cui viene eseguito il comando. Ti servirà il percorso di questo file nei passaggi seguenti.
- Esegui questo
- Apri il file
overrides.yaml
. Imposta i seguenti parametri: come mostrato in L'esempio esegue l'override dei file.- Imposta i parametri generali mostrati di seguito nel blocco
backup
. Se hai già impostato questi parametri per non CSI, puoi utilizzare gli stessi parametri per gli snapshot CSI. Consulta la tabella di riferimento delle proprietà di backup per ulteriori informazioni su ciascun valore.
Per
backup
:- abilitato: impostalo su
true
per abilitare i backup pianificati. - pullPolicy nell'immagine: imposta su
Always
. - serviceAccountPath: il percorso dell'account di servizio.
- schedule: fornisci una pianificazione delle espressioni cron.
- abilitato: impostalo su
- Imposta questi parametri per il backup specifico di CSI:
- Valori del gruppo di archiviazione Cassandra: la classe di archiviazione Cassandra configurata deve supportare gli snapshot CSI
affinché il backup e il ripristino CSI funzionino. Per verificare se una classe di archiviazione supporta gli snapshot CSI, esegui
il comando seguente per ottenere le classi di archiviazione disponibili:
kubectl get sc
Cerca "Provisioner" per ogni classe di archiviazione. I provisioner che utilizzano CSI di solito hanno un ".csi." parte del nome, ad esempio "pd.csi.storage.gke.io". Cerca il nome del provisioner in in questo elenco di driver CSI per Kubernetes. Se lo stato delle "Altre funzionalità" per il provisioner contiene: "SNAPSHOT", la classe di archiviazione che utilizza il provisioner supporta gli snapshot CSI.Aggiungi questi parametri al gruppo di archiviazione. Entrambi i valori sono obbligatori.
- storageclass: il nome di una classe di archiviazione abilitata per gli snapshot CSI.
- capacity: la capacità del disco.
- Tipo di cloud provider:
Una volta verificata la funzionalità snapshot CSI, modifica il file di override in modo da utilizzare Backup e ripristino CSI:
- cloudProvider: imposta
cloudProvider
inbackup
e Darestore
aCSI
.
- cloudProvider: imposta
- Valori del gruppo di archiviazione Cassandra: la classe di archiviazione Cassandra configurata deve supportare gli snapshot CSI
affinché il backup e il ripristino CSI funzionino. Per verificare se una classe di archiviazione supporta gli snapshot CSI, esegui
il comando seguente per ottenere le classi di archiviazione disponibili:
- Imposta i parametri generali mostrati di seguito nel blocco
Esempio di configurazione del backup
Questa sezione mostra le parti relative al backup di un fileoverrides.yaml
di esempio.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always backup: enabled: true image: pullPolicy: Always serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" schedule: "0 * * 11 *"
Avviare un backup manuale
I backup CSI vengono generati automaticamente in base alla pianificazione cron impostata nel file overrides.yaml
.
Per avviare un backup CSI manuale, utilizza questo comando:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup backup-pod-namedove
backup-pod-name
è il nome del pod di backup che verrà creato.
Verifica i backup
Un modo per verificare se un backup è stato creato correttamente è controllare gli snapshot del volume cluster Kubernetes, utilizzando questo comando:
kubectl get volumesnapshot -n apigee
L'output mostra l'elenco attuale di snapshot sul cluster. Il processo di backup CSI crea di ogni disco Cassandra. Il numero di snapshot generati deve corrispondere al numero totale di snapshot di pod Cassandra nel cluster.
Ripristina un backup
Utilizza questa procedura per ripristinare un backup CSI generato in precedenza. Per informazioni generali su per il ripristino dei backup e una panoramica del processo, consulta pagina di riepilogo del ripristino.
Per avviare un ripristino di un backup CSI, segui le istruzioni per la
ripristino ibrido a regione singola non CSI,
ma utilizza questi valori nel blocco restore
in overrides.yaml
.
Consulta la tabella di riferimento delle proprietà di backup
per ulteriori informazioni su ogni valore
configurazione di ripristino di esempio.
- abilitato: impostalo su
true
per abilitare il ripristino per il backup a cui viene fatto riferimento il timestampsnapshotTimestamp
. - snapshotTimestamp: fornisce il timestamp di un backup CSI precedente.
- serviceAccountPath: il percorso dell'account di servizio.
- pullPolicy nell'immagine: imposta su
Always
.
Per trovare il valore snapshotTimestamp
da ripristinare, esegui questo comando per ottenere il
degli snapshot disponibili:
kubectl get volumesnapshot -n apigeeNell'elenco restituito, i nomi degli snapshot contengono il timestamp:
pvc-us-west2-b-20220803004907-47beff0e306d8861In questo esempio, il timestamp è
20220803004907
.
Esempio di configurazione di ripristino
Questa sezione mostra le parti relative al ripristino di un fileoverrides.yaml
di esempio.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always restore: enabled: true snapshotTimestamp: "20220908222130" serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" image: pullPolicy: Always
Esegui la migrazione a Backup e ripristino di CSI
Se non hai già utilizzato il backup e ripristino ibridi, puoi seguire le istruzioni in Configura i backup CSI per creare nuovi backup CSI senza i passaggi in questa sezione. Questi passaggi ti guidano nella migrazione dall'account non CSI soluzione di backup e ripristino per i backup CSI.
- Genera un nuovo backup utilizzando il metodo di backup non CSI attualmente configurato.
- Modifica la configurazione del backup nel file
overrides.yaml
ibrido per utilizzare la crittografia lato client gli override del backup come mostrato nella configurazione del backup di esempio. - Applica le modifiche nel file
overrides.yaml
:. Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml
- Verifica il job di backup:
kubectl get cronjob -n apigee
- Al termine del job di backup, verifica che siano stati creati gli snapshot. Il numero di
gli snapshot generati devono essere equivalenti al numero di nodi Cassandra nell'istanza ibrida.
kubectl get volumesnapshot -n apigee