Restaurar en una sola región

En esta página se describe cómo restaurar Cassandra en una sola región.

En una implementación de una sola región, Apigee hybrid se implementa en un único centro de datos o región. Si tienes varias organizaciones de Apigee en tu implementación, el proceso de restauración restaurará los datos de todas las organizaciones. En una configuración de varias organizaciones, no puedes restaurar una organización específica.

Restaurar una región a partir de una copia de seguridad

En tu configuración, la copia de seguridad de Cassandra puede residir en Cloud Storage o en un servidor remoto. En cualquier caso, sigue estos pasos para restaurar el contenido:

  1. Verifica la versión híbrida.
    apigeectl version
    Asegúrate de que la versión sea la misma que creó los archivos de copia de seguridad en el almacenamiento.
  2. Confirma que el clúster de Kubernetes en el que vas a restaurar la copia de seguridad no tenga una instalación anterior de Apigee Hybrid. Si vas a restaurar el clúster, usa los siguientes comandos para eliminar la instalación de Apigee hybrid:
    apigeectl delete -f overrides.yaml
    kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
    apigeectl delete --all -f overrides.yaml
  3. Abre el archivo overrides.yaml y asigna los valores que quieras a las propiedades restore:

    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 * * *"
      ...

    Donde:

    Propiedad Descripción
    namespace

    YOUR_RESTORE_NAMESPACE

    Espacio de nombres de la restauración. Usa el espacio de nombres como en el clúster original.

    cassandra:hostNetwork

    hostNetwork es obligatorio y siempre debe tener el valor false.

    restore:enabled La restauración está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    La ruta del sistema de archivos a la cuenta de servicio que has creado para la copia de seguridad.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Ruta del segmento de Cloud Storage en el que se almacenan los datos de la copia de seguridad, con el siguiente formato: gs://BUCKET_NAME. El campo gs:// es obligatorio.

    restore:cloudProvider

    GCP

    La propiedad cloudProvider: "GCP" es obligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    Marca de tiempo de la copia de seguridad que se va a restaurar. Para comprobar qué marcas de tiempo se pueden usar, ve a dbStorageBucket y consulta los archivos que hay en el contenedor. Cada nombre de archivo contiene una marca de tiempo. Por ejemplo: backup_20210203213003_apigee-cassandra-default-0.tgz

    Donde 20210203213003 es el valor de snapshotTimestamp que usarías si quisieras restaurar las copias de seguridad creadas en ese momento.

    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

    Ruta del archivo JSON de la cuenta de servicio en tu sistema de archivos que se descargó al ejecutar ./tools/create-service-account

    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

    La propiedad cloudProvider: "GCP" es obligatoria.

    backup:schedule

    SCHEDULE

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

    Almacenamiento que no es 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 * * *"
        ...

    Donde:

    Propiedad Descripción
    namespace

    YOUR_RESTORE_NAMESPACE

    Espacio de nombres de la restauración. Usa el espacio de nombres como en el clúster original.

    cassandra:hostNetwork

    hostNetwork es obligatorio y siempre debe tener el valor false.

    restore:enabled La restauración está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    La ruta del archivo de clave privada SSH (llamado ssh_key en el paso en el que creaste el par de claves SSH) en tu sistema de archivos local.

    restore:server

    BACKUP_SERVER_IP

    La dirección IP de tu servidor de copia de seguridad.

    restore:storageDirectory

    BACKUP_DIRECTORY

    Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad. Debe ser un directorio de home/apigee (el directorio de copia de seguridad se llama cassandra_backup en el paso en el que creaste el directorio de copia de seguridad).

    restore:cloudProvider

    HYBRID

    La propiedad cloudProvider: "HYBRID" es obligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    Marca de tiempo de la copia de seguridad que se va a restaurar. Para comprobar qué marcas de tiempo se pueden usar, ve a dbStorageBucket y consulta los archivos que hay en el contenedor. Cada nombre de archivo contiene una marca de tiempo. Por ejemplo: backup_20210203213003_apigee-cassandra-default-0.tgz

    Donde 20210203213003 es el valor de snapshotTimestamp que usarías si quisieras restaurar las copias de seguridad creadas en ese momento.

    backup:enabled La copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor true a esta propiedad.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    La ruta del archivo de clave privada SSH en tu sistema de archivos local (llamado ssh_key en el paso en el que creaste el par de claves SSH).

    backup:server

    BACKUP_SERVER_IP

    La dirección IP de tu servidor de copia de seguridad.

    backup:storageDirectory

    BACKUP_DIRECTORY

    Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad. Debe ser un directorio de home/apigee (el directorio de copia de seguridad se llama cassandra_backup en el paso en el que creaste el directorio de copia de seguridad).

    backup:cloudProvider

    HYBRID

    La propiedad cloudProvider: "HYBRID" es obligatoria.

    backup:schedule

    SCHEDULE

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

  4. Crea un nuevo despliegue de tiempo de ejecución híbrido. De esta forma, se creará un clúster de Cassandra y se empezarán a restaurar los datos de la 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
  5. Verifica el progreso del trabajo de restauración y confirma que apigeeds y todos los demás pods están activos:
    • Para comprobar apigeeds, haz lo siguiente:
      kubectl get apigeeds -n apigee
    • Para comprobar todos los demás pods, sigue estos pasos:
      kubectl get pods -n apigee

Una vez que se haya completado la restauración correctamente y se haya confirmado que los componentes del tiempo de ejecución están en buen estado, te recomendamos que configures una copia de seguridad en el clúster:

  1. Quita la configuración de restore del archivo overrides-restore.yaml.
  2. Añada la configuración de backup al archivo overrides-restore.yaml.
  3. Aplica la configuración backup con el siguiente comando:
    ./apigeectl apply -f ../overrides-restore.yaml