Back-ups in Cloud Storage planen

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:

  1. Führen Sie den folgenden Befehl create-service-account aus, um ein Google Cloud-Dienstkonto (Service Account, SA) mit der Standardrolle roles/storage.objectAdmin zu erstellen. Mit dieser SA-Rolle können Sie Sicherungsdaten in Cloud Storage schreiben. Führen Sie den folgenden Befehl im Verzeichnis hybrid-base-directory/hybrid-files aus:
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    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 ./service-accounts abgelegt. Weitere Informationen zu Google Cloud-Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
  2. 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.
  3. Cloud Storage-Bucket erstellen Legen Sie für den Bucket eine angemessene Aufbewahrungsrichtlinie für Daten fest. Apigee empfiehlt eine Datenaufbewahrungszeit von 15 Tagen.
  4. Öffnen Sie Ihre overrides.yaml-Datei.
  5. 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"
          
    
        ... 
  6. Wobei:
    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 ./tools/create-service-account heruntergeladen wurde.

    Sie können auch einen relativen Dateipfad angeben. Der Pfad bezieht sich auf das Verzeichnis hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

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

    backup:cloudProvider

    GCP/HYBRID

    Legen Sie für eine Cloud Storage-Sicherung das Attribut auf GCP fest. Beispiel: cloudProvider: "GCP".

    Legen Sie für eine Remote-Serversicherung das Attribut HYBRID fest. Beispiel: cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

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

  7. Wenden Sie die Konfigurationsänderungen auf den neuen Cluster an. Beispiel:
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    Dabei ist YOUR_OVERRIDES_FILE der Pfad zu der Überschreibungsdatei, die Sie gerade bearbeitet haben.

  8. Ü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