Puoi eseguire il backup e il ripristino dei tuoi dati ibridi utilizzando gli snapshot CSI (Container Storage Interface). Il backup CSI attiva gli snapshot del disco creati dal sistema di archiviazione sottostante utilizzando il driver CSI fornito. Il backup CSI non richiede un bucket Google Cloud Storage o un server remoto per archiviare i dati di backup.
Il backup CSI è consigliato per le istanze ibride ospitate in Google Cloud, AWS o Azure.
Questa pagina descrive i passaggi per utilizzare il backup e il ripristino CSI ibrido. Per una panoramica generale del backup e del ripristino ibridi, consulta la panoramica del backup e del ripristino di Cassandra.
Limitazioni di backup e ripristino
Tieni presente queste limitazioni quando utilizzi il backup e il ripristino CSI:
- Il driver CSI utilizzato dalla classe di archiviazione configurata deve supportare gli snapshot CSI. Consulta questo elenco dei driver CSI di Kubernetes per informazioni sui driver.
- Non tutte le piattaforme sono supportate. Sono supportate solo le piattaforme Google Cloud, AWS e Azure.
- OpenShift Container Platform non è supportato a causa di limitazioni degli snapshot dei volumi.
- Sono supportate solo le piattaforme cloud. Le piattaforme on-premise non sono supportate.
- I dati di backup CSI e i dati di backup ibrido 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 responsabilità del fornitore del driver CSI.
- Gli utenti sono responsabili di garantire che siano disponibili risorse del cluster adeguate per il provisioning degli snapshot CSI.
- Gli utenti sono responsabili della rimozione dei vecchi dati degli snapshot.
Configura i backup CSI
Per pianificare i backup ibridi utilizzando CSI:
- Se non hai mai configurato il backup ibrido:
- Esegui questo comando
create-service-accountper creare un account di servizio Google Cloud con il ruolo standardroles/storage.objectAdmin. Questo ruolo SA ti consente di scrivere i dati di backup in Cloud Storage. Esegui il seguente comando nella directory appropriata per il tuo 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-prodda utilizzare in ambienti non di produzione e inserisce il file della chiave scaricato nella directory./service-accounts.Per ulteriori informazioni sui service account Google Cloud, vedi Creazione e gestione dei service account.
- Grafici Helm:
- Il comando
create-service-accountsalva un file JSON contenente la chiave privata delaccount di serviziot. Il file viene salvato nella stessa directory in cui viene eseguito il comando. Avrai bisogno del percorso di questo file nei passaggi successivi.
- Esegui questo comando
- Apri il file
overrides.yaml. Imposta i seguenti parametri, come mostrato in File di override di esempio.- Imposta i parametri generali mostrati di seguito nel blocco
backup. Se hai già impostato questi parametri per la soluzione di backup ibrida non CSI, puoi utilizzare gli stessi parametri per gli snapshot CSI. Per ulteriori informazioni su ciascun valore, consulta la tabella di riferimento delle proprietà di backup.
Per
backup:- enabled: imposta su
trueper attivare i backup pianificati. - pullPolicy in image: impostato su
Always. - schedule:fornisci una pianificazione dell'espressione cron.
- enabled: imposta su
- Imposta questi parametri per il backup specifico per 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 seguente comando per ottenere le classi di archiviazione disponibili:
Esamina l'output "Provisioner" per ogni classe di archiviazione. I provisioner che utilizzano CSI di solito hanno una parte ".csi." nel nome, ad esempio "pd.csi.storage.gke.io". Cerca il nome del provisioner in questo elenco dei driver CSI di Kubernetes. Se la colonna "Altre funzionalità" per il provisioner contiene la parola "SNAPSHOT", la classe di archiviazione che utilizza il provisioner supporta gli snapshot CSI.kubectl get sc
Aggiungi questi parametri nel 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 provider cloud:
Una volta verificata la funzionalità di snapshot CSI, modifica il file di override per utilizzare il backup e il ripristino CSI:
- cloudProvider: imposta
cloudProviderinbackuperestoresuCSI.
- 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 seguente comando per ottenere le classi di archiviazione disponibili:
- Imposta i parametri generali mostrati di seguito nel blocco
Configurazione di backup di esempio
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 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-name
backup-pod-name è il nome del pod di backup che verrà creato.
Verifica i backup
Un modo per verificare che un backup sia stato creato correttamente è controllare gli snapshot del volume sul cluster Kubernetes utilizzando questo comando:
kubectl get volumesnapshot -n apigee
L'output mostra l'elenco attuale degli snapshot sul cluster. Il processo di backup CSI crea uno snapshot di ogni disco Cassandra. Il numero di snapshot generati deve corrispondere al numero totale di pod Cassandra nel cluster.
Ripristina un backup
Utilizza questa procedura per ripristinare un backup CSI generato in precedenza. Per informazioni generali sul ripristino dei backup e una panoramica della procedura, consulta la pagina di panoramica del ripristino.
Per avviare il ripristino di un backup CSI, segui le istruzioni per il
ripristino ibrido non CSI di una singola regione,
ma utilizza questi valori nel blocco restore del tuo overrides.yaml.
Per ulteriori informazioni su ogni valore e per un esempio, consulta la tabella di riferimento delle proprietà di backup
e la configurazione di ripristino di esempio.
- enabled: impostato su
trueper attivare il ripristino del backup a cui viene fatto riferimento con il timestampsnapshotTimestamp. - snapshotTimestamp:fornisci il timestamp di un backup CSI precedente.
- pullPolicy in image: impostato su
Always.
Per trovare il valore di snapshotTimestamp da ripristinare, esegui questo comando per ottenere l'elenco degli snapshot disponibili:
kubectl get volumesnapshot -n apigee
pvc-us-west2-b-20220803004907-47beff0e306d8861
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" cloudProvider: "CSI" image: pullPolicy: Always
Esegui la migrazione al backup e al ripristino CSI
Se non hai mai utilizzato il backup e il ripristino ibridi, puoi seguire le istruzioni riportate in Configurare i backup CSI per creare un nuovo backup CSI senza i passaggi descritti in questa sezione. Questi passaggi ti guidano nella migrazione dalla soluzione di backup e ripristino non CSI ai backup CSI.
- Genera un nuovo backup utilizzando il metodo di backup non CSI attualmente configurato.
- Modifica la configurazione di backup nel file
overrides.yamlibrido per utilizzare gli override di backup CSI come mostrato nella configurazione di 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 di un job di backup, verifica che siano stati creati gli snapshot. Il numero di snapshot generati deve essere equivalente al numero di nodi Cassandra nell'istanza ibrida.
kubectl get volumesnapshot -n apigee