Pianificare i backup in Cloud Storage

Questa pagina descrive come pianificare i backup per Cassandra in Cloud Storage. In questo metodo, i backup vengono archiviati nel bucket Cloud Storage specificato.

Per pianificare i backup di Cassandra, procedi nel seguente modo:

  1. Esegui il comando create-service-account seguente per creare un account di servizio Google Cloud (SA) con il ruolo standard roles/storage.objectAdmin. Questo ruolo SA consente di scrivere dati di backup in Cloud Storage. Esegui il seguente comando nella directory hybrid-base-directory/hybrid-files:
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    Questo comando crea un singolo account di servizio denominato apigee-non-prod per l'utilizzo in ambienti non di produzione e inserisce il file della chiave scaricato nella directory ./service-accounts. Per ulteriori informazioni sugli account di servizio Google Cloud, consulta Creazione e gestione degli account di servizio.
  2. Il comando create-service-account salva un file JSON contenente la chiave privata dell'account di servizio. Il file viene salvato nella stessa directory in cui viene eseguito il comando. Per farlo, dovrai utilizzare il percorso a questo file:
  3. Crea un bucket Cloud Storage. Specifica un criterio di conservazione dei dati ragionevole per il bucket. Apigee consiglia un criterio di conservazione dei dati di 15 giorni.
  4. Apri il file overrides.yaml.
  5. Aggiungi le seguenti proprietà cassandra.backup per abilitare il backup. Non rimuovere nessuna delle proprietà già configurate.

    Parametri

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

    Esempio

    ...
    
    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. Dove:
    Proprietà Descrizione
    backup:enabled Il backup è disattivato per impostazione predefinita. Devi impostare questa proprietà su true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Il percorso del file system al file JSON dell'account di servizio che è stato scaricato quando hai eseguito il comando ./tools/create-service-account.

    Puoi anche specificare un percorso file relativo. Il percorso sarà relativo alla directory hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Percorso del bucket Cloud Storage in questo formato: gs://BUCKET_NAME. Il campo gs:// è obbligatorio.

    backup:cloudProvider

    GCP/HYBRID

    Per il backup di Cloud Storage, imposta la proprietà su GCP. Ad esempio, cloudProvider: "GCP".

    Per il backup di un server remoto, imposta la proprietà su HYBRID. Ad esempio, cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

    L'ora di inizio del backup, specificata nella sintassi crontab standard. Valore predefinito: 0 2 * * *

  7. Applica le modifiche alla configurazione al nuovo cluster. Ad esempio:
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE
      

    Dove YOUR_OVERRIDES_FILE è il percorso del file delle sostituzioni appena modificato.

  8. Verifica il job di backup. Ad esempio:
    kubectl get cronjob -n apigee
    NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    apigee-cassandra-backup   33 * * * *   False     0        <none>          94s