Auf dieser Seite wird beschrieben, wie Sie Sicherungen für Cassandra in Cloud Storage planen können. Bei dieser Methode werden Sicherungen im angegebenen Cloud Storage-Bucket gespeichert.
Führen Sie die folgenden Schritte aus, um Cassandra-Backups zu planen:
- Führen Sie den folgenden Befehl
create-service-account
aus, um ein Google Cloud-Dienstkonto (Service Account, SA) mit der Standardrolleroles/storage.objectAdmin
zu erstellen. Mit dieser Rolle können Sie Sicherungsdaten in Cloud Storage schreiben. Führen Sie den Befehl im Verzeichnis$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
aus:./tools/create-service-account --env non-prod --dir ./
Mit diesem Befehl wird ein einzelnes Dienstkonto mit dem Namen
apigee-non-prod
für die Verwendung in einer Nicht-Produktionsumgebung erstellt und die heruntergeladene Schlüsseldatei im Verzeichnis./
abgelegt.Weitere Informationen zu Google Cloud-Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
- Mit dem Befehl
create-service-account
wird eine JSON-Datei mit dem privaten Schlüssel des Dienstkontos gespeichert. Die Datei wird im selben Verzeichnis gespeichert, in dem der Befehl ausgeführt wird. Sie benötigen den Pfad zu dieser Datei in den folgenden Schritten. - Cloud Storage-Bucket erstellen Legen Sie für den Bucket eine angemessene Aufbewahrungsrichtlinie für Daten fest. Apigee empfiehlt eine Datenaufbewahrungszeit von 15 Tagen.
- Öffnen Sie Ihre
overrides.yaml
-Datei. - Fügen Sie folgende
cassandra.backup
-Attribute hinzu, um das Backup zu aktivieren. Entfernen Sie keine der bereits konfigurierten Attribute.Parameter
cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE cloudProvider: "GCP" # For remote server backup set this to HYBRID (all caps) ...
Beispiel
... cassandra: storage: type: gcepd capacity: 50Gi gcepd: replicationType: regional-pd auth: default: password: "abc123" admin: password: "abc234" ddl: password: "abc345" dml: password: "abc456" nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-data backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my-cassandra-backup-sa.json" dbStorageBucket: "gs://myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
Wobei:
- Wenden Sie die Konfigurationsänderungen auf den neuen Cluster an. Beispiel:
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
Dabei ist OVERRIDES_FILE der Pfad zu der Überschreibungsdatei, die Sie gerade bearbeitet haben.
- Überprüfen Sie den Sicherungsjob. Beispiel:
kubectl get cronjob -n apigee
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
Attribut | Beschreibung |
---|---|
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 des Befehls Der Pfad muss relativ zum Diagrammverzeichnis von apigee-datastore sein. Beispiel: |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH Der Cloud Storage-Bucket-Pfad im Format |
backup:cloudProvider |
Legen Sie für eine Cloud Storage-Sicherung das Attribut auf Legen Sie für eine Remote-Serversicherung das Attribut |
backup:schedule |
BACKUP_SCHEDULE_CODE Die Zeit, zu der das Backup startet, angegeben in der Standard-Crontab-Syntax. Standard: |
Manuelle Sicherung starten
Cassandra-Sicherungen werden automatisch gemäß dem Cron-Zeitplan generiert, der in der Datei overrides.yaml
festgelegt ist.
Verwenden Sie den folgenden Befehl, um eine manuelle Sicherung zu initiieren:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME