Programar copias de seguridad en Cloud Storage

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

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

  1. Ejecuta el siguiente comando create-service-account para crear una cuenta de servicio (SA) de Google Cloud con el rol estándar roles/storage.objectAdmin. Este rol de SA te permite escribir datos de copias de seguridad en Cloud Storage. E Ejecuta el siguiente comando en el directorio adecuado para tu herramienta de gestión:
    • Gráficos 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
    Este comando crea una cuenta de servicio llamada apigee-non-prod para usarla en entornos que no son de producción y 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 el artículo sobre cómo crear y gestionar 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 pasos siguientes.
  3. Crea un segmento de Cloud Storage. Especifica una política de conservación de datos razonable para el segmento. Apigee recomienda una política de conservación de datos de 15 días.
  4. Abre el archivo overrides.yaml.
  5. Añade las siguientes propiedades de cassandra.backup para habilitar la copia de seguridad. No elimine 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" # required verbatim "GCP" (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. Donde:
    Propiedad Descripción
    backup:enabled La copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

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

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

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

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    La ruta del segmento de Cloud Storage con este formato: gs://BUCKET_NAME. El campo gs:// es obligatorio.

    backup:cloudProvider

    GCP

    Para crear una copia de seguridad en Cloud Storage, asigna el valor GCP a la propiedad.

    backup:schedule

    BACKUP_SCHEDULE_CODE

    Hora en la que se inicia la copia de seguridad, especificada en la sintaxis estándar de crontab. Predeterminado: 0 2 * * *

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

    Helm

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

    apigeectl

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

    Donde OVERRIDES_FILE es la ruta del archivo de anulaciones que acabas de editar.

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

Iniciar una copia de seguridad manual

Las tareas de copia de seguridad se activan automáticamente según la programación cron definida en cassandra.backup.schedule en el archivo overrides.yaml. Sin embargo, también puedes iniciar un trabajo de copia de seguridad manualmente si es necesario con el siguiente comando:

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

Donde MANUAL_BACKUP_JOB_NAME es el nombre de una tarea de copia de seguridad manual que se va a crear.