Programa copias de seguridad en Cloud Storage

En esta página, se describe cómo programar copias de seguridad para Cassandra en Cloud Storage. En este método, las copias de seguridad se almacenan en el bucket de Cloud Storage especificado.

Para programar copias de seguridad de Cassandra, sigue estos pasos:

  1. Ejecuta el siguiente comando de create-service-account para crear una cuenta de servicio de Google Cloud con el rol estándar roles/storage.objectAdmin. Este rol de la cuenta de servicio te permite escribir datos de copia de seguridad en Cloud Storage. Ejecuta el siguiente comando en el directorio correspondiente a tu herramienta de administración:
    • Charts de Helm: $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
    • apigeectl: HYBRID_BASE_DIRECTORY/hybrid-files/
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    Con este comando, se crea una sola cuenta de servicio llamada apigee-non-prod para usarla en entornos que no son de producción y se coloca el archivo de claves descargado en el directorio ./service-accounts. Para obtener más información sobre las cuentas de servicio de Google Cloud, consulta Crea y administra cuentas de servicio.
  2. El comando create-service-account guarda un archivo JSON que contiene la clave privada de la cuenta de servicio. El archivo se guarda en el mismo directorio en el que se ejecuta el comando. Necesitarás la ruta a este archivo en los siguientes pasos.
  3. Crea buckets de almacenamiento. Especifica una política de retención de datos razonable para el bucket. Apigee recomienda una política de retención de datos de 15 días.
  4. Abre el archivo overrides.yaml.
  5. Agrega las siguientes propiedades de cassandra.backup para habilitar la copia de seguridad. No quites ninguna de las propiedades que ya están configuradas.

    Parámetros

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

    Ejemplo

      ...
    
      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: "my-cassandra-backup-sa.json"
          dbStorageBucket: "gs://myname-cassandra-backup"
          schedule: "45 23 * * 6"
          cloudProvider: "GCP"
          
    
    
        ... 
  6. Aquí:
    Propiedad Descripción
    backup:enabled La copia de seguridad está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    La ruta de tu sistema de archivos al archivo JSON de la cuenta de servicio que se descargó cuando ejecutaste el comando create-service-account.

    Para las instalaciones administradas con Helm, la ruta de acceso debe ser relativa al directorio del gráfico apigee-datastore. Por ejemplo,
    serviceAccountPath: myproject-apigee-cassandra.json.

    En el caso de las instalaciones administradas con apigeectl, también puedes proporcionar una ruta de acceso de archivo relativa. La ruta de acceso será relativa al directorio hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Ruta de acceso del bucket de Cloud Storage con este formato: gs://BUCKET_NAME. gs:// es obligatorio.

    backup:cloudProvider

    GCP/HYBRID

    Para una copia de seguridad de Cloud Storage, establece la propiedad en GCP. Por ejemplo: cloudProvider: "GCP"

    Para una copia de seguridad del servidor remoto, configura la propiedad como HYBRID. Por ejemplo: cloudProvider: "HYBRID"

    backup:schedule

    BACKUP_SCHEDULE_CODE

    El momento en el que se inicia la copia de seguridad, especificado en sintaxis de crontab estándar. Predeterminada: 0 2 * * *

  7. Aplica los cambios de configuración al clúster nuevo. Por ejemplo:

    Helm

    helm upgrade datastore apigee-datastore/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore

    En el que OVERRIDES_FILE es la ruta de acceso al archivo de anulación que acabas de editar.

  8. Verifica el trabajo de copia de seguridad. Por ejemplo:
    kubectl get cronjob -n apigee
      NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      apigee-cassandra-backup   33 * * * *   False     0        <none>          94s

Inicia una copia de seguridad manual

Las copias de seguridad de Cassandra se generan automáticamente según la programación cron establecida en el archivo overrides.yaml.

Para iniciar una copia de seguridad manual, usa este comando:

kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME