Ripristino in una singola regione

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 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

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:

  1. Verifica la versione ibrida.
    apigeectl version
    Assicurati che la versione sia la stessa che ha creato i file di backup nello spazio di archiviazione.
  2. Verifica che il cluster Kubernetes in cui stai eseguendo il ripristino non abbia un'installazione ibrida precedente di Apigee. 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
  3. Apri il file overrides.yaml e imposta il restore 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

    Il campo hostNetwork è obbligatorio e deve essere sempre impostato su false.

    restore:enabled Il ripristino è disattivato per impostazione predefinita. Devi impostarlo a 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

    Percorso del bucket Cloud Storage in cui sono archiviati i dati di backup nel seguente formato: gs://BUCKET_NAME. L'attributo gs:// è obbligatorio.

    restore:cloudProvider

    GCP

    La proprietà cloudProvider: "GCP" è obbligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    Timestamp dello snapshot di 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 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 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 nel seguente formato: gs://BUCKET_NAME. L'attributo gs:// è obbligatorio.

    backup:cloudProvider

    GCP

    La proprietà cloudProvider: "GCP" è obbligatoria.

    backup:schedule

    SCHEDULE

    L'ora di avvio del backup, specificata in sintassi standard di crontab. 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

    Il campo hostNetwork è obbligatorio e deve essere sempre impostato su false.

    restore:enabled Il ripristino è disattivato per impostazione predefinita. Devi impostarlo a true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Il percorso sul file system locale per File di chiave privata SSH (denominato ssh_key in 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 è denominata cassandra_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 puoi usare, vai su dbStorageBucket per esaminare i file presenti di sincronizzare la directory di una VM con un 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 impostarlo a true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Percorso del 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 è denominata cassandra_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 * * *

  4. 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
  5. 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

Dopo il completamento del ripristino e la conferma che i componenti di runtime sono integri, consigliamo di configurare un backup sul cluster:

  1. Rimuovi la configurazione restore dal file overrides-restore.yaml.
  2. Aggiungi la configurazione backup al file overrides-restore.yaml.
  3. Applica la configurazione backup con il seguente comando:
    ./apigeectl apply -f ../overrides-restore.yaml