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

  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 create-service-account heruntergeladen wurde.

    Der Pfad muss relativ zum Diagrammverzeichnis von apigee-datastore sein. Beispiel: serviceAccountPath: myproject-apigee-cassandra.json.

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

  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

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