In einer einzelnen Region wiederherstellen

Auf dieser Seite wird das Wiederherstellen von Cassandra in einer einzelnen Region beschrieben.

In einer Einzelregions-Bereitstellung wird Apigee Hybrid in einem einzelnen Rechenzentrum oder einer Region bereitgestellt. Wenn Sie in Ihrer Bereitstellung mehrere Apigee-Organisationen haben, werden bei der Wiederherstellung Daten aller Organisationen wiederhergestellt. In einer Einrichtung mit mehreren Organisationen können Sie eine bestimmte Organisation nicht wiederherstellen.

Region aus einem Backup wiederherstellen

Wählen Sie die folgende Anleitung für das Managementtool aus, das Sie für Apigee Hybrid verwenden:

Helm

  1. Aktualisieren Sie die Cassandra-Wiederherstellungsdetails in der Datei 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
      ...

    Wobei:

    Attribut Beschreibung
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.

    cassandra:hostNetwork

    hostNetwork ist erforderlich und sollte immer auf false gesetzt werden.

    restore:enabled Die Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Der Pfad in Ihrem Dateisystem zum Dienstkonto, das Sie für die Sicherung erstellt haben.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Der Cloud Storage-Bucket-Pfad, in dem Ihre Sicherungsdaten gespeichert werden, im folgenden Format: gs://BUCKET_NAME. gs:// ist erforderlich.

    restore:cloudProvider

    GCP

    Das Attribut cloudProvider: "GCP" ist erforderlich.

    restore:snapshotTimestamp

    TIMESTAMP

    Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie dbStorageBucket auf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert. Beispiele: backup_20210203213003_apigee-cassandra-default-0.tgz

    Dabei ist 20210203213003 der snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Sicherungen zu diesem Zeitpunkt wiederherstellen wollten.

    backup:enabled Sie sollten dieses Attribut auf false setzen, falls es zuvor auf true gesetzt war.
  2. Wenn Sie zu Beginn keinen sauberen Cluster haben, folgen Sie der Dokumentation Hybridregion für Helm außer Betrieb nehmen, um Ihre vorhandene Hybrid-Installation in einen sauberen Zustand zu versetzen. Sie können den Zertifikatsmanager installiert lassen. Dadurch erhalten Sie den gleichen Zustand, als hätten Sie das Einrichtungshandbuch für die Helm-Laufzeit bis zum Beginn von Schritt 11 befolgt.

  3. Prüfen Sie, ob in den Apigee-Namespaces noch Pods vorhanden sind:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Wenn Sie die CSI-Sicherung verwenden, prüfen Sie, ob Sie die Volume-Snapshots sehen können, die Sie für den Wiederherstellungsprozess verwenden möchten:

    kubectl get volumesnapshot -n apigee
              
  5. Installieren Sie alle Hybrid-Komponenten einzeln, wie in Schritt 11 im Installationsleitfaden beschrieben. Beachten Sie, dass der Pod apigee-cassandra-restore erstellt wird, sobald Sie den Befehl zur Installation von datastore ausführen. Er wechselt jedoch erst nach der Installation der Komponente apigee-org in den Status running.

Weitere Informationen zur Cassandra-Sicherung und -Wiederherstellung finden Sie unter Cassandra-Sicherungsübersicht.

apigeectl

In Ihrer Konfiguration kann sich die Cassandra-Sicherung entweder in Cloud Storage oder auf einem Remote-Server befinden. Führen Sie in beiden Fällen die folgenden Schritte aus, um wiederherzustellen:

  1. Prüfen Sie die Hybridversion.
    apigeectl version
    Achten Sie darauf, dass es sich um die Version handelt, mit der die Sicherungsdateien im Speicher erstellt wurden.
  2. Achten Sie darauf, dass der wiederherzustellende Kubernetes-Cluster keine vorherige Apigee-Hybridinstallation hat. Wenn Sie im vorhandenen Cluster wiederherstellen, verwenden Sie folgenden Befehl, um die vorhandene Apigee-Hybridinstallation zu löschen:
    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. Öffnen Sie Ihre overrides.yaml-Datei und legen Sie die restore-Attribute auf die gewünschten Werte fest:

    Cloud Storage

    Parameter

    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"

    Beispiel

    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 * * *"
      ...

    Wobei:

    Attribut Beschreibung
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.

    cassandra:hostNetwork

    hostNetwork ist erforderlich und sollte immer auf false gesetzt werden.

    restore:enabled Die Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Der Pfad in Ihrem Dateisystem zum Dienstkonto, das Sie für die Sicherung erstellt haben.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Der Cloud Storage-Bucket-Pfad, in dem Ihre Sicherungsdaten gespeichert werden, im folgenden Format: gs://BUCKET_NAME. gs:// ist erforderlich.

    restore:cloudProvider

    GCP

    Das Attribut cloudProvider: "GCP" ist erforderlich.

    restore:snapshotTimestamp

    TIMESTAMP

    Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie dbStorageBucket auf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert. Beispiele: backup_20210203213003_apigee-cassandra-default-0.tgz

    Dabei ist 20210203213003 der snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Sicherungen zu diesem Zeitpunkt wiederherstellen wollten.

    backup:enabled Sie sollten dieses Attribut auf false setzen, falls es zuvor auf true gesetzt war.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Der Pfad in Ihrem Dateisystem zur JSON-Datei des Dienstkontos, die beim Ausführen von ./tools/create-service-account heruntergeladen wurde

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Der Cloud Storage-Bucket-Pfad im Format gs://BUCKET_NAME. gs:// ist erforderlich.

    backup:cloudProvider

    GCP

    Das Attribut cloudProvider: "GCP" ist erforderlich.

    backup:schedule

    SCHEDULE

    Die Zeit, zu der die Sicherung startet, angegeben in der Standard-Crontab-Syntax. Standard: 0 2 * * *

    Außerhalb von Cloud Storage

    Parameter

      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"
      

    Beispiel

      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 * * *"
        ...

    Wobei:

    Attribut Beschreibung
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.

    cassandra:hostNetwork

    hostNetwork ist erforderlich und sollte immer auf false gesetzt werden.

    restore:enabled Die Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Der Pfad in Ihrem lokalen Dateisystem zur privaten SSH-Schlüsseldatei, die Sie in dem Schritt, in dem Sie das SSH-Schlüsselpaar erstellt haben, mit ssh_key benannt haben.

    restore:server

    BACKUP_SERVER_IP

    Die IP-Adresse des Sicherungsservers.

    restore:storageDirectory

    BACKUP_DIRECTORY

    Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb home/apigee (das Sicherungsverzeichnis heißt cassandra_backup in dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.

    restore:cloudProvider

    HYBRID

    Das Attribut cloudProvider: "HYBRID" ist erforderlich.

    restore:snapshotTimestamp

    TIMESTAMP

    Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie dbStorageBucket auf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert. Beispiel: backup_20210203213003_apigee-cassandra-default-0.tgz.

    Dabei ist 20210203213003 der snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Backups zu diesem Zeitpunkt wiederherstellen wollten.

    backup:enabled Sie sollten dieses Attribut auf false setzen, falls es zuvor auf true gesetzt war.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Der Pfad in Ihrem lokalen Dateisystem zur privaten SSH-Schlüsseldatei, die Sie in dem Schritt, in dem Sie das SSH-Schlüsselpaar erstellt haben, mit ssh_key benannt haben.

    backup:server

    BACKUP_SERVER_IP

    Die IP-Adresse des Sicherungsservers.

    backup:storageDirectory

    BACKUP_DIRECTORY

    Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb home/apigee (das Sicherungsverzeichnis heißt cassandra_backup in dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.

    backup:cloudProvider

    HYBRID

    Das Attribut cloudProvider: "HYBRID" ist erforderlich.

    backup:schedule

    SCHEDULE

    Die Zeit, zu der das Backup startet, angegeben in der Standard-Crontab-Syntax. Standard: 0 2 * * *

  4. Erstellen Sie eine neue Hybrid-Laufzeitbereitstellung. Damit wird ein neuer Cassandra-Cluster erstellt und die Backupdaten werden im Cluster wiederhergestellt:
    ${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

Prüfen Sie den Fortschritt des Wiederherstellungsjobs und ob apigeeds und alle anderen Pods aktiv sind:

  1. Prüfen Sie apigeeds:
    kubectl get apigeeds -n apigee
  2. Prüfen Sie alle anderen Pods:
    kubectl get pods -n apigee

Nach Abschluss der Wiederherstellung und der Bestätigung, dass die Laufzeitkomponenten fehlerfrei sind, empfehlen wir, eine Sicherung auf dem Cluster zu konfigurieren:

  1. Entfernen Sie die restore-Konfiguration aus der overrides-restore.yaml-Datei.
  2. Fügen Sie der overrides-restore.yaml-Datei die backup-Konfiguration hinzu.
  3. Wenden Sie die backup-Konfiguration mit diesem Befehl an:

    Helm

    helm upgrade datastore apigee-datastore/ \
    --install \
    --namespace apigee \
    --atomic \
    -f overrides.yaml

    apigeectl

    ./apigeectl apply -f ../overrides.yaml