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 unten die Anleitung für das Verwaltungstool aus, das Sie für Apigee Hybrid verwenden:
Helm
-
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 namespaceYOUR_RESTORE_NAMESPACE
Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.
cassandra:hostNetworkhostNetworkist erforderlich und sollte immer auffalsegesetzt werden.restore:enabledDie Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf truefestlegen.restore:serviceAccountPathSA_JSON_FILE_PATH
Der Pfad in Ihrem Dateisystem zum Dienstkonto, das Sie für die Sicherung erstellt haben.
restore:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
Der Cloud Storage-Bucket-Pfad, in dem Ihre Sicherungsdaten gespeichert werden, im folgenden Format:
gs://BUCKET_NAME.gs://ist erforderlich.restore:cloudProviderGCPDas Attribut
cloudProvider: "GCP"ist erforderlich.restore:snapshotTimestampTIMESTAMP
Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie
dbStorageBucketauf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert. Beispiele:backup_20210203213003_apigee-cassandra-default-0.tgzDabei ist 20210203213003 der
snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Sicherungen zu diesem Zeitpunkt wiederherstellen wollten.backup:enabledSie sollten dieses Attribut auf falsesetzen, falls es zuvor auftruegesetzt war. -
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.
-
Prüfen Sie, ob in den Apigee-Namespaces noch Pods vorhanden sind:
kubectl get pods -n apigeekubectl get pods -n apigee-system -
Wenn Sie eine CSI-Sicherung verwenden, prüfen Sie, ob Sie die Volume-Snapshots sehen, die Sie für die Wiederherstellung verwenden möchten. Führen Sie dazu Folgendes aus:
kubectl get volumesnapshot -n apigee -
Installieren Sie alle Hybridkomponenten nacheinander, wie unter Schritt 11 in der Installationsanleitung beschrieben. Beachten Sie, dass der Pod
apigee-cassandra-restoreerstellt wird, sobald Sie den Befehl zur Installation vondatastoreausführen. Er wechselt jedoch erst nach der Installation der Komponenteapigee-orgin den Statusrunning.
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:
- Prüfen Sie die Hybridversion.
Achten Sie darauf, dass es sich um die Version handelt, mit der die Sicherungsdateien im Speicher erstellt wurden.apigeectl version
- 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.yamlkubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.apigeectl delete --all -f overrides.yaml - Öffnen Sie Ihre
overrides.yaml-Datei und legen Sie dierestore-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 namespaceYOUR_RESTORE_NAMESPACE
Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.
cassandra:hostNetworkhostNetworkist erforderlich und sollte immer auffalsegesetzt werden.restore:enabledDie Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf truefestlegen.restore:serviceAccountPathSA_JSON_FILE_PATH
Der Pfad in Ihrem Dateisystem zum Dienstkonto, das Sie für die Sicherung erstellt haben.
restore:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
Der Cloud Storage-Bucket-Pfad, in dem Ihre Sicherungsdaten gespeichert werden, im folgenden Format:
gs://BUCKET_NAME.gs://ist erforderlich.restore:cloudProviderGCPDas Attribut
cloudProvider: "GCP"ist erforderlich.restore:snapshotTimestampTIMESTAMP
Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie
dbStorageBucketauf und sehen Sie sich die Dateien im Bucket an. Jeder Dateiname enthält einen Zeitstempelwert. Beispiele:backup_20210203213003_apigee-cassandra-default-0.tgzDabei ist 20210203213003 der
snapshotTimestamp-Wert, den Sie verwenden würden, wenn Sie die Sicherungen zu diesem Zeitpunkt wiederherstellen wollten.backup:enabledSie sollten dieses Attribut auf falsesetzen, falls es zuvor auftruegesetzt war.backup:serviceAccountPathSA_JSON_FILE_PATH
Der Pfad in Ihrem Dateisystem zur JSON-Datei des Dienstkontos, die beim Ausführen von
./tools/create-service-accountheruntergeladen wurdebackup:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
Der Cloud Storage-Bucket-Pfad im Format
gs://BUCKET_NAME.gs://ist erforderlich.backup:cloudProviderGCPDas Attribut
cloudProvider: "GCP"ist erforderlich.backup:scheduleSCHEDULE
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 namespaceYOUR_RESTORE_NAMESPACE
Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.
cassandra:hostNetworkhostNetworkist erforderlich und sollte immer auffalsegesetzt werden.restore:enabledDie Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf truefestlegen.restore:keyFilePATH_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_keybenannt haben.restore:serverBACKUP_SERVER_IP
Die IP-Adresse des Sicherungsservers.
restore:storageDirectoryBACKUP_DIRECTORY
Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb
home/apigee(das Sicherungsverzeichnis heißtcassandra_backupin dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.restore:cloudProviderHYBRIDDas Attribut
cloudProvider: "HYBRID"ist erforderlich.restore:snapshotTimestampTIMESTAMP
Der Zeitstempel des wiederherzustellenden Backup-Snapshots. Wenn Sie prüfen möchten, welche Zeitstempel verwendet werden können, rufen Sie
dbStorageBucketauf 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:enabledSie sollten dieses Attribut auf falsesetzen, falls es zuvor auftruegesetzt war.backup:keyFilePATH_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_keybenannt haben.backup:serverBACKUP_SERVER_IP
Die IP-Adresse des Sicherungsservers.
backup:storageDirectoryBACKUP_DIRECTORY
Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb
home/apigee(das Sicherungsverzeichnis heißtcassandra_backupin dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.backup:cloudProviderHYBRIDDas Attribut
cloudProvider: "HYBRID"ist erforderlich.backup:scheduleSCHEDULE
Die Zeit, zu der das Backup startet, angegeben in der Standard-Crontab-Syntax. Standard:
0 2 * * * - 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:
- Prüfen Sie
apigeeds:kubectl get apigeeds -n apigee
- 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:
- Entfernen Sie die
restore-Konfiguration aus deroverrides-restore.yaml-Datei. - Fügen Sie der
overrides-restore.yaml-Datei diebackup-Konfiguration hinzu. - 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