Ripristino in una singola regione

In questa pagina viene descritto come ripristinare Cassandra in un'unica regione.

In un'unica regione, il deployment di Apigee hybrid viene eseguito in un singolo data center o in un'unica regione. Se nel deployment sono presenti più organizzazioni Apigee, il processo di ripristino ripristina i dati per tutte le organizzazioni. In una configurazione multi-organizzazione, 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

  1. Aggiorna i dettagli del ripristino 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 sempre essere impostato su false.

    restore:enabled Il ripristino è disabilitato per impostazione predefinita. Devi impostare questa proprietà su true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Il percorso del file system all'account di servizio 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. Il campo gs:// è obbligatorio.

    restore:cloudProvider

    GCP

    La proprietà cloudProvider: "GCP" è obbligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    Il 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 file contiene un valore di timestamp. Ad esempio: backup_20210203213003_apigee-cassandra-default-0.tgz

    Dove 20210203213003 è il valore snapshotTimestamp da utilizzare se volessi ripristinare i backup creati in quel momento.

    backup:enabled Dovresti impostare questa proprietà su false nel caso in cui fosse stata precedentemente impostata su true.
  2. Se non hai un cluster pulito con cui iniziare, segui la documentazione relativa alla dismissione di una regione ibrida per helm per portare l'installazione ibrida esistente in uno stato "pulito" (puoi lasciare installato Cert Manager). Questo ti porterà a uno stato uguale come se avessi seguito il manuale di configurazione del runtime Helm fino all'inizio del passaggio 11.

  3. Verifica che non siano rimasti pod negli spazi dei nomi di Apigee:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Se utilizzi il backup CSI, assicurati di poter vedere i voluminapshots che vuoi utilizzare per il processo di ripristino eseguendo:

    kubectl get volumesnapshot -n apigee
              
  5. 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 installare datastore, ma lo stato diventerà running solo dopo l'installazione del componente apigee-org.

Per maggiori dettagli sul backup e ripristino di Cassandra, consulta Panoramica del backup di Cassandra.

apigeectl

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 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 di Apigee precedente. Se esegui il ripristino nel 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
  3. 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 sempre essere impostato su false.

    restore:enabled Il ripristino è disabilitato per impostazione predefinita. Devi impostare questa proprietà su true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Il percorso del file system all'account di servizio 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. Il campo gs:// è obbligatorio.

    restore:cloudProvider

    GCP

    La proprietà cloudProvider: "GCP" è obbligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    Il 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 file contiene un valore di timestamp. Ad esempio: backup_20210203213003_apigee-cassandra-default-0.tgz

    Dove 20210203213003 è il valore snapshotTimestamp da utilizzare se volessi ripristinare i backup creati in quel momento.

    backup:enabled Dovresti impostare questa proprietà su false nel caso in cui fosse stata precedentemente impostata su true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Il percorso nel tuo file system al file JSON dell'account di servizio che è stato scaricato quando hai eseguito ./tools/create-service-account

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Il percorso del bucket Cloud Storage nel formato gs://BUCKET_NAME. Il campo gs:// è obbligatorio.

    backup:cloudProvider

    GCP

    La proprietà cloudProvider: "GCP" è obbligatoria.

    backup:schedule

    SCHEDULE

    L'ora di avvio del backup, specificata nella sintassi standard di crontab. Valore predefinito: 0 2 * * *

    Archiviazione non cloud

    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 nome del cluster originale.

    cassandra:hostNetwork

    hostNetwork è obbligatorio e deve sempre essere impostato su false.

    restore:enabled Il ripristino è disabilitato 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 (denominato ssh_key nel passaggio in cui è stata creata 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

    Il 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 file contiene un valore di timestamp. Ad esempio: backup_20210203213003_apigee-cassandra-default-0.tgz

    Dove 20210203213003 è il valore snapshotTimestamp da utilizzare se volessi ripristinare i backup creati in quel momento.

    backup:enabled Dovresti impostare questa proprietà su false nel caso in cui sia stata precedentemente impostata su true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Il percorso nel file system locale del file della chiave privata SSH (denominato ssh_key nel passaggio in cui è stata creata 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 nella sintassi standard di crontab. Valore predefinito: 0 2 * * *

  4. Creare un nuovo deployment del 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 conferma che apigeeds e tutti gli altri pod siano attivi:

  1. Controlla apigeeds:
    kubectl get apigeeds -n apigee
  2. Controlla tutti gli altri pod:
    kubectl get pods -n apigee

Una volta completato il ripristino e confermato che i componenti di runtime sono integri, ti 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 comando seguente:
    ./apigeectl apply -f ../overrides-restore.yaml