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
-
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 auffalse
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 auftrue
gesetzt 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 apigee
kubectl get pods -n apigee-system
-
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
-
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 vondatastore
ausführen. Er wechselt jedoch erst nach der Installation der Komponenteapigee-org
in 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.yaml
kubectl -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 namespace
YOUR_RESTORE_NAMESPACE
Namespace zur Wiederherstellung. Verwenden Sie denselben Namespace wie im ursprünglichen Cluster.
cassandra:hostNetwork
hostNetwork
ist erforderlich und sollte immer auffalse
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 auftrue
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 wurdebackup: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 auffalse
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ßtcassandra_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 auftrue
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ßtcassandra_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 * * *
- 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