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

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

    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: true
        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 den 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 Die Sicherung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    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 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"
      

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

    Wobei:

    Attribut Beschreibung
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace zur Wiederherstellung. Verwenden Sie den 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 Die Sicherung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true festlegen.
    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
  5. Prüfen Sie den Fortschritt des Wiederherstellungsjobs und ob apigeeds und alle anderen Pods aktiv sind:
    • So prüfen Sie apigeeds:
      kubectl get apigeeds -n apigee
    • So 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:
    ./apigeectl apply -f ../overrides-restore.yaml