Restablecer en una sola región

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

Elige las instrucciones que aparecen a continuación para la herramienta de administración que usas en Apigee Hybrid:

Helm

  1. Actualiza los detalles de restablecimiento de Cassandra en el archivo overrides.yaml:

    namespace: YOUR_RESTORE_NAMESPACE # Use the same 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: false
    ...

    Aquí:

    Propiedad Descripción
    namespace

    YOUR_RESTORE_NAMESPACE

    Espacio de nombres para el restablecimiento. Usa el mismo espacio de nombres como en tu clúster original.

    cassandra:hostNetwork

    hostNetwork es obligatorio y siempre debe establecerse en false.

    restore:enabled La opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    La ruta de acceso del sistema de archivos a la cuenta de servicio que creaste para la copia de seguridad.

    restore:dbStorageBucket

    CLOUD_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:cloudProvider

    GCP

    La propiedad cloudProvider: "GCP" es obligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    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 dbStorageBucket y 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 snapshotTimestamp que usarías si quisieras restablecer las copias de seguridad creadas en ese momento.

    backup:enabled Debes establecer esta propiedad en false en caso de que se haya configurado previamente como true.
  2. En caso de que no tengas un clúster limpio para comenzar, sigue la documentación Retira una región híbrida para helm a fin de poner tu instalación híbrida existente en un estado limpio ( puedes dejar Cert Manager instalado). Esto te llevaría al mismo estado que si hubieras seguido el manual de configuración del entorno de ejecución de Helm hasta el comienzo del paso 11.

  3. Verifica que no queden Pods en los espacios de nombres de Apigee:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Si usas la copia de seguridad de CSI, asegúrate de que puedas ver las instantáneas de volumen que deseas usar para el proceso de restablecimiento mediante la ejecución:

    kubectl get volumesnapshot -n apigee
              
  5. Instala todos los componentes híbridos uno por uno como se describe en el Paso 11 en el manual de instalación. Ten en cuenta que el pod apigee-cassandra-restore se creará una vez que ejecutes el comando para instalar datastore, pero solo entrará en el estado running después de instalar el componente apigee-org.

Consulta Descripción general de la copia de seguridad de Cassandra para obtener más detalles sobre la copia de seguridad y el restablecimiento de Cassandra.

apigeectl

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:

  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 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.yaml
    kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
    apigeectl delete --all -f overrides.yaml
  3. Abre tu archivo overrides.yaml y configura las propiedades de restore con los valores deseados:

    Cloud Storage

    Parámetros

    namespace: YOUR_RESTORE_NAMESPACE # Use the same 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: false
        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: false
        serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        cloudProvider: "GCP"
        schedule: "0 2 * * *"
      ...

    Aquí:

    Propiedad Descripción
    namespace

    YOUR_RESTORE_NAMESPACE

    Espacio de nombres para el restablecimiento. Usa el mismo espacio de nombres como en tu clúster original.

    cassandra:hostNetwork

    hostNetwork es obligatorio y siempre debe establecerse en false.

    restore:enabled La opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    La ruta de acceso del sistema de archivos a la cuenta de servicio que creaste para la copia de seguridad.

    restore:dbStorageBucket

    CLOUD_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:cloudProvider

    GCP

    La propiedad cloudProvider: "GCP" es obligatoria.

    restore:snapshotTimestamp

    TIMESTAMP

    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 dbStorageBucket y 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 snapshotTimestamp que usarías si quisieras restablecer las copias de seguridad creadas en ese momento.

    backup:enabled Debes establecer esta propiedad en false en caso de que se haya configurado previamente como 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 ./tools/create-service-account

    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

    La propiedad cloudProvider: "GCP" es obligatoria.

    backup:schedule

    SCHEDULE

    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 same 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: false
          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: false
          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
    namespace

    YOUR_RESTORE_NAMESPACE

    Espacio de nombres para el restablecimiento. Usa el mismo espacio de nombres de nombre que en tu clúster original.

    cassandra:hostNetwork

    hostNetwork es obligatorio y siempre debe establecerse en false.

    restore:enabled La opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

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

    restore:server

    BACKUP_SERVER_IP

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

    restore:storageDirectory

    BACKUP_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 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

    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 dbStorageBucket y 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 snapshotTimestamp que usarías si quisieras restablecer las copias de seguridad creadas en ese momento.

    backup:enabled Debes establecer esta propiedad en false en caso de que se haya configurado previamente como true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    La ruta de tu sistema de archivos local al archivo de claves privadas SSH (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

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

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

  4. 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 apigeeds y todos los demás Pods estén activos:

  1. Verifica apigeeds:
    kubectl get apigeeds -n apigee
  2. Verifica todos los demás Pods:
    kubectl get pods -n apigee

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:

  1. Quita la configuración de restore del archivo overrides-restore.yaml.
  2. Agrega la configuración de backup al archivo overrides-restore.yaml.
  3. Aplica la configuración de backup configuration mediante el siguiente comando:

    Helm

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

    apigeectl

    ./apigeectl apply -f ../overrides.yaml