Questa pagina descrive 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 tuo 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
Nella tua configurazione, il backup di Cassandra può risiedere su Cloud Storage o su un server remoto. In entrambi i casi, segui questi passaggi per eseguire il ripristino:
- Verifica la versione ibrida.
Assicurati che sia la stessa versione con cui sono stati creati i file di backup nello spazio di archiviazione.apigeectl version
- Verifica che il cluster Kubernetes in cui stai eseguendo il ripristino non abbia un'installazione ibrida Apigee precedente. Se
che stai ripristinando nel cluster esistente, utilizza i seguenti comandi per eliminare la piattaforma Apigee esistente
installazione ibrida:
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 ilrestore
ai valori desiderati:Cloud Storage
Parametri
namespace: YOUR_RESTORE_NAMESPACE # Use the 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: true 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: true 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 spazio dei nomi come nel 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 tuo file system all'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
Il timestamp dello snapshot del backup da ripristinare. Per verificare quali timestamp puoi usare: vai su
dbStorageBucket
per esaminare i file presenti di sincronizzare la directory di una VM con un bucket. Ogni nome file contiene un valore timestamp. Ad esempio:backup_20210203213003_apigee-cassandra-default-0.tgz
Dove 20210203213003 è il valore
snapshotTimestamp
che vorresti da utilizzare per ripristinare i backup creati in quel momento.backup:enabled
Il backup è disattivato per impostazione predefinita. Devi impostarlo a true
.backup:serviceAccountPath
SA_JSON_FILE_PATH
Il percorso sul tuo file system al file JSON dell'account di servizio scaricato durante l'esecuzione
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
Il percorso del bucket Cloud Storage in questo formato:
gs://BUCKET_NAME
.gs://
è obbligatorio.backup:cloudProvider
GCP
La proprietà
cloudProvider: "GCP"
è obbligatoria.backup:schedule
SCHEDULE
L'ora di inizio del backup, specificata in sintassi crontab standard. Predefinita:
0 2 * * *
Non cloud storage
Parametri
namespace: YOUR_RESTORE_NAMESPACE # Use the 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: true 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: true 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 spazio dei nomi come nel 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 nel file system locale del file della chiave privata SSH (chiamato
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 controlla 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
che vorresti da utilizzare per ripristinare i backup creati in quel momento.backup:enabled
Il backup è disattivato per impostazione predefinita. Devi impostare questa proprietà su true
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Il percorso nel file system locale del file della chiave privata SSH (chiamato
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 di avvio del backup, specificata in sintassi standard di crontab. Predefinita:
0 2 * * *
- Creare un nuovo deployment di runtime ibrido. Verrà creato un nuovo cluster Cassandra e verrà avviata
ripristinando i 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:- Per controllare
apigeeds
:kubectl get apigeeds -n apigee
- Per controllare tutti gli altri pod:
kubectl get pods -n apigee
- Per controllare
Dopo il completamento del ripristino e la conferma che i componenti di runtime sono integri, 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