In questa pagina viene descritto come ripristinare Cassandra in una singola regione.
Il deployment di Apigee hybrid viene eseguito in un'unica regione, in un unico data center o in una regione. Se nel deployment sono presenti più organizzazioni Apigee, il processo di ripristino ripristina i dati per tutte le organizzazioni. In una configurazione multiorganizzazione, non puoi ripristinare un'organizzazione specifica.
Ripristino di una regione da un backup
Scegli le istruzioni di seguito per lo strumento di gestione che stai utilizzando per Apigee hybrid:
Helm
-
Aggiorna i dettagli del ripristino di Cassandra nel file
overrides.yaml
:namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false ...
Dove:
Proprietà Descrizione namespace
YOUR_RESTORE_NAMESPACE
Spazio dei nomi per il ripristino. Utilizza lo stesso spazio dei nomi del cluster originale.
cassandra:hostNetwork
hostNetwork
è obbligatorio e deve essere sempre impostato sufalse
.restore:enabled
Il ripristino è disattivato per impostazione predefinita. Devi impostare questa proprietà su true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
Il percorso sul file system dell'account di servizio che hai creato per il backup.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Il percorso del bucket Cloud Storage in cui sono archiviati i dati di backup nel seguente formato:
gs://BUCKET_NAME
. L'attributogs://
è obbligatorio.restore:cloudProvider
GCP
La proprietà
cloudProvider: "GCP"
è obbligatoria.restore:snapshotTimestamp
TIMESTAMP
Timestamp dello snapshot di backup da ripristinare. Per verificare quali timestamp possono essere utilizzati, vai a
dbStorageBucket
e osserva i file presenti nel bucket. Ogni nome di file contiene un valore timestamp. Ad esempio,backup_20210203213003_apigee-cassandra-default-0.tgz
Dove 20210203213003 è il valore
snapshotTimestamp
da utilizzare per ripristinare i backup creati in quel momento.backup:enabled
Devi impostare questa proprietà su false
nel caso in cui sia stata precedentemente impostata sutrue
. -
Se non disponi di un cluster pulito con cui iniziare, segui la documentazione relativa alla disattivazione di una regione ibrida per Helm per portare la tua installazione ibrida esistente in uno stato pulito (puoi lasciare installato Cert Manager). In questo modo viene riportato lo stesso stato, come se avessi seguito il manuale di configurazione del runtime Helm fino all'inizio del passaggio 11.
-
Verifica che non siano rimasti pod negli spazi dei nomi Apigee:
kubectl get pods -n apigee
kubectl get pods -n apigee-system
-
Se utilizzi il backup CSI, assicurati di poter visualizzare i voluminapshot da utilizzare per il processo di ripristino eseguendo:
kubectl get volumesnapshot -n apigee
-
Installa tutti i componenti ibridi uno alla volta come descritto nel passaggio 11 del manuale di installazione. Tieni presente che il pod
apigee-cassandra-restore
verrà creato dopo che avrai eseguito il comando per installaredatastore
, ma passerà allo statorunning
solo dopo l'installazione del componenteapigee-org
.
Per ulteriori dettagli su backup e ripristino con Cassandra, consulta la panoramica del backup di Cassandra.
apigeectl
Nella tua configurazione, il backup di Cassandra può risiedere su Cloud Storage o su un server remoto. In ogni caso, segui questi passaggi per il ripristino:
- Verifica la versione ibrida.
apigeectl version
Assicurati che la versione sia la stessa di quella che ha creato i file di backup nello spazio di archiviazione. - Verifica che il cluster Kubernetes in cui stai eseguendo il ripristino non abbia un'installazione ibrida precedente di Apigee. Se stai ripristinando il cluster esistente, utilizza i comandi seguenti per eliminare l'installazione ibrida di Apigee esistente:
apigeectl delete -f overrides.yaml
kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
apigeectl delete --all -f overrides.yaml
- Apri il file
overrides.yaml
e imposta le proprietàrestore
sui valori desiderati:Cloud Storage
Parametri
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
Esempio
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: false serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
Dove:
Proprietà Descrizione namespace
YOUR_RESTORE_NAMESPACE
Spazio dei nomi per il ripristino. Utilizza lo stesso spazio dei nomi del cluster originale.
cassandra:hostNetwork
hostNetwork
è obbligatorio e deve essere sempre impostato sufalse
.restore:enabled
Il ripristino è disattivato per impostazione predefinita. Devi impostare questa proprietà su true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
Il percorso sul file system dell'account di servizio che hai creato per il backup.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Il percorso del bucket Cloud Storage in cui sono archiviati i dati di backup nel seguente formato:
gs://BUCKET_NAME
. L'attributogs://
è obbligatorio.restore:cloudProvider
GCP
La proprietà
cloudProvider: "GCP"
è obbligatoria.restore:snapshotTimestamp
TIMESTAMP
Timestamp dello snapshot di backup da ripristinare. Per verificare quali timestamp possono essere utilizzati, vai a
dbStorageBucket
e osserva i file presenti nel bucket. Ogni nome di file contiene un valore timestamp. Ad esempio,backup_20210203213003_apigee-cassandra-default-0.tgz
Dove 20210203213003 è il valore
snapshotTimestamp
da utilizzare per ripristinare i backup creati in quel momento.backup:enabled
Devi impostare questa proprietà su false
nel caso in cui sia stata precedentemente impostata sutrue
.backup:serviceAccountPath
SA_JSON_FILE_PATH
Il percorso sul file system del file JSON dell'account di servizio scaricato durante l'esecuzione di
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Il percorso del bucket Cloud Storage nel seguente formato:
gs://BUCKET_NAME
. L'attributogs://
è obbligatorio.backup:cloudProvider
GCP
La proprietà
cloudProvider: "GCP"
è obbligatoria.backup:schedule
SCHEDULE
L'ora in cui viene avviato il backup, specificata nella sintassi standard di crontab. Predefinita:
0 2 * * *
Non cloud storage
Parametri
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
Esempio
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: false keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...
Dove:
Proprietà Descrizione namespace
YOUR_RESTORE_NAMESPACE
Spazio dei nomi per il ripristino. Utilizza lo stesso spazio dei nomi del cluster originale.
cassandra:hostNetwork
hostNetwork
è obbligatorio e deve essere sempre impostato sufalse
.restore:enabled
Il ripristino è disattivato per impostazione predefinita. Devi impostare questa proprietà su true
.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
Il percorso sul file system locale del file della chiave privata SSH (denominato
ssh_key
nel passaggio in cui hai creato la coppia di chiavi SSH).restore:server
BACKUP_SERVER_IP
L'indirizzo IP del server di backup.
restore:storageDirectory
BACKUP_DIRECTORY
Il nome della directory di backup sul server di backup. Deve essere una directory all'interno di
home/apigee
(la directory di backup è denominatacassandra_backup
nel passaggio in cui hai creato la directory di backup).restore:cloudProvider
HYBRID
La proprietà
cloudProvider: "HYBRID"
è obbligatoria.restore:snapshotTimestamp
TIMESTAMP
Timestamp dello snapshot di backup da ripristinare. Per verificare quali timestamp possono essere utilizzati, vai a
dbStorageBucket
e osserva i file presenti nel bucket. Ogni nome di file contiene un valore timestamp. Ad esempio,backup_20210203213003_apigee-cassandra-default-0.tgz
Dove 20210203213003 è il valore
snapshotTimestamp
da utilizzare per ripristinare i backup creati in quel momento.backup:enabled
Devi impostare questa proprietà su false
nel caso in cui sia stata precedentemente impostata sutrue
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Il percorso sul file system locale al file della chiave privata SSH (denominato
ssh_key
nel passaggio in cui hai creato la coppia di chiavi SSH).backup:server
BACKUP_SERVER_IP
L'indirizzo IP del server di backup.
backup:storageDirectory
BACKUP_DIRECTORY
Il nome della directory di backup sul server di backup. Deve essere una directory all'interno di
home/apigee
(la directory di backup è denominatacassandra_backup
nel passaggio in cui hai creato la directory di backup).backup:cloudProvider
HYBRID
La proprietà
cloudProvider: "HYBRID"
è obbligatoria.backup:schedule
SCHEDULE
L'ora in cui viene avviato il backup, specificata nella sintassi standard di crontab. Predefinita:
0 2 * * *
- Creare un nuovo deployment di runtime ibrido. Verrà creato un nuovo cluster Cassandra e verrà avviato il ripristino dei dati di backup nel cluster:
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
Verifica l'avanzamento del job di ripristino e verifica che apigeeds
e tutti gli altri pod siano attivi:
- Controlla
apigeeds
:kubectl get apigeeds -n apigee
- Controlla tutti gli altri pod:
kubectl get pods -n apigee
Dopo il completamento del ripristino e la conferma che i componenti di runtime sono integri, ti consigliamo di configurare un backup sul cluster:
- Rimuovi la configurazione
restore
dal fileoverrides-restore.yaml
. - Aggiungi la configurazione
backup
al fileoverrides-restore.yaml
. - Applica la configurazione
backup
con il seguente comando:./apigeectl apply -f ../overrides-restore.yaml