En esta página, se describe cómo restablecer Cassandra en una sola región.
En una implementación de una sola región, Apigee Hybrid se implementa en un centro de datos o una región única. Si tienes varias organizaciones de Apigee en tu implementación, el proceso de restablecimiento restablece los datos de todas las organizaciones. En una configuración de varias organizaciones, no puedes restablecer una organización específica.
Restablece una región a partir de una copia de seguridad
En la configuración, la copia de seguridad de Cassandra puede residir en Cloud Storage o en un servidor remoto. En cualquier caso, realiza los siguientes pasos para realizar el restablecimiento:
- Verifica la versión híbrida.
Asegúrate de que la versión sea la misma que creó los archivos de copia de seguridad en el almacenamiento.apigeectl version
- Confirma que el clúster de Kubernetes al que restableces no tenga una instalación de Apigee Hybrid anterior. Si restableces al clúster existente, usa los siguientes comandos para borrar la instalación existente de Apigee hybrid:
apigeectl delete -f overrides.yamlkubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.apigeectl delete --all -f overrides.yaml - Abre tu archivo
overrides.yamly configura las propiedades derestorecon los valores deseados:Cloud Storage
Parámetros
namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
Ejemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
Aquí:
Propiedad Descripción namespaceYOUR_RESTORE_NAMESPACE
Espacio de nombres para el restablecimiento. Usa el espacio de nombres como en tu clúster original.
cassandra:hostNetworkhostNetworkes obligatorio y siempre debe establecerse enfalse.restore:enabledLa opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.restore:serviceAccountPathSA_JSON_FILE_PATH
La ruta de acceso del sistema de archivos a la cuenta de servicio que creaste para la copia de seguridad.
restore:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
La ruta del bucket de Cloud Storage en la que se almacenan tus datos de copia de seguridad en el siguiente formato:
gs://BUCKET_NAME.gs://es obligatorio.restore:cloudProviderGCPLa propiedad
cloudProvider: "GCP"es obligatoria.restore:snapshotTimestampTIMESTAMP
La marca de tiempo de la instantánea de la copia de seguridad que se restablecerá. Para comprobar qué marcas de tiempo se pueden usar, ve a
dbStorageBuckety consulta los archivos que están presentes en el bucket. Cada nombre de archivo contiene un valor de marca de tiempo. Por ejemplo,backup_20210203213003_apigee-cassandra-default-0.tgzEn el ejemplo anterior, 20210203213003 es el valor
snapshotTimestampque usarías si quisieras restablecer las copias de seguridad creadas en ese momento.backup:enabledLa copia de seguridad está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.backup:serviceAccountPathSA_JSON_FILE_PATH
La ruta de tu sistema de archivos al archivo JSON de la cuenta de servicio que se descargó cuando ejecutaste
./tools/create-service-accountbackup:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
Ruta de acceso del bucket de Cloud Storage con este formato:
gs://BUCKET_NAME.gs://es obligatorio.backup:cloudProviderGCPLa propiedad
cloudProvider: "GCP"es obligatoria.backup:scheduleSCHEDULE
El momento en el que se inicia la copia de seguridad, especificado en sintaxis de crontab estándar. Predeterminada:
0 2 * * *Sin almacenamiento en la nube
Parámetros
namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"Ejemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...Aquí:
Propiedad Descripción namespaceYOUR_RESTORE_NAMESPACE
Espacio de nombres para el restablecimiento. Usa el espacio de nombres como en tu clúster original.
cassandra:hostNetworkhostNetworkes obligatorio y siempre debe establecerse enfalse.restore:enabledLa opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.restore:keyFilePATH_TO_PRIVATE_KEY_FILE
La ruta de tu sistema de archivos local al archivo de claves privadas SSH (llamado
ssh_keyen el paso en el que creaste el par de claves SSH).restore:serverBACKUP_SERVER_IP
La dirección IP de tu servidor de copia de seguridad.
restore:storageDirectoryBACKUP_DIRECTORY
El nombre del directorio de copia de seguridad de tu servidor de copia de seguridad. Debe ser un directorio dentro de
home/apigee(el directorio de copia de seguridad se llamacassandra_backupen el paso en el que creaste el directorio de copia de seguridad).restore:cloudProviderHYBRIDLa propiedad
cloudProvider: "HYBRID"es obligatoria.restore:snapshotTimestampTIMESTAMP
La marca de tiempo de la instantánea de la copia de seguridad que se restablecerá. Para comprobar qué marcas de tiempo se pueden usar, ve a
dbStorageBuckety consulta los archivos que están presentes en el bucket. Cada nombre de archivo contiene un valor de marca de tiempo. Por ejemplo,backup_20210203213003_apigee-cassandra-default-0.tgz.En el ejemplo anterior, 20210203213003 es el valor de
snapshotTimestampque usarías si quisieras restablecer las copias de seguridad creadas en ese momento.backup:enabledLa copia de seguridad está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.backup:keyFilePATH_TO_PRIVATE_KEY_FILE
La ruta de tu sistema de archivos local al archivo de claves privadas SSH (llamado
ssh_keyen el paso en el que creaste el par de claves SSH).backup:serverBACKUP_SERVER_IP
La dirección IP de tu servidor de copia de seguridad.
backup:storageDirectoryBACKUP_DIRECTORY
El nombre del directorio de copia de seguridad de tu servidor de copia de seguridad. Debe ser un directorio dentro de
home/apigee(el directorio de copia de seguridad se llamacassandra_backupen el paso en el que creaste el directorio de copia de seguridad).backup:cloudProviderHYBRIDLa propiedad
cloudProvider: "HYBRID"es obligatoria.backup:scheduleSCHEDULE
El momento en el que se inicia la copia de seguridad, especificado en sintaxis de crontab estándar. Predeterminada:
0 2 * * * - Crea una nueva implementación de entorno de ejecución híbrido. Esto creará un nuevo clúster de Cassandra y comenzará a restablecer los datos de copia de seguridad en el clúster:
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml - Verifica el progreso del trabajo de restablecimiento y confirma que
apigeedsy todos los demás Pods estén activos:- Para consultar
apigeeds, ejecuta este comando:kubectl get apigeeds -n apigee
- Para verificar todos los demás Pods, ejecuta este comando:
kubectl get pods -n apigee
- Para consultar
Tras completar con éxito el restablecimiento y la confirmación de que los componentes del entorno de ejecución están en buen estado, recomendamos configurar una copia de seguridad en el clúster:
- Quita la configuración de
restoredel archivooverrides-restore.yaml. - Agrega la configuración de
backupal archivooverrides-restore.yaml. - Aplica la configuración de
backupmediante el siguiente comando:./apigeectl apply -f ../overrides-restore.yaml