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:
- Ejecuta el siguiente comando de
create-service-account
para crear una cuenta de servicio de Google Cloud con el rol estándarroles/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/
Con este comando, se crea una sola cuenta de servicio llamada./tools/create-service-account --env non-prod --dir ./service-accounts
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. - Charts de Helm:
- 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. - 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.
- Abre el archivo
overrides.yaml
. - 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" ...
Aquí:
- 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.
- 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
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 Para las instalaciones administradas con Helm, la ruta de acceso debe ser relativa al directorio del gráfico apigee-datastore. Por ejemplo, En el caso de las instalaciones administradas con |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH Ruta de acceso del bucket de Cloud Storage con este formato: |
backup:cloudProvider |
Para una copia de seguridad de Cloud Storage, establece la propiedad en Para una copia de seguridad del servidor remoto, configura la propiedad como |
backup:schedule |
BACKUP_SCHEDULE_CODE El momento en el que se inicia la copia de seguridad, especificado en sintaxis de crontab estándar. Predeterminada: |
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