Effectuer une restauration dans une seule région

Cette page explique comment restaurer Cassandra dans une seule région.

Dans un déploiement n'impliquant qu'une seule région, Apigee hybrid est déployé dans un centre de données ou une région. Si votre déploiement comporte plusieurs organisations Apigee, le processus de restauration restaure les données de toutes les organisations. Dans une configuration comportant plusieurs organisations, vous ne pouvez pas restaurer une organisation spécifique.

Restaurer une région à partir d'une sauvegarde

Choisissez les instructions ci-dessous pour l'outil de gestion que vous utilisez pour Apigee hybrid :

Helm

  1. Mettez à jour les détails de restauration Cassandra dans le fichier 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
    ...

    Où :

    Propriété Description
    namespace

    YOUR_RESTORE_NAMESPACE

    Espace de noms à restaurer. Utilisez l'espace de noms de votre cluster d'origine.

    cassandra:hostNetwork

    hostNetwork est obligatoire et doit toujours être défini sur false.

    restore:enabled La restauration est désactivée par défaut. Vous devez définir cette propriété sur true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Le chemin d'accès, sur votre système de fichiers, au compte de service que vous avez créé pour la sauvegarde.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Chemin d'accès au bucket Cloud Storage où sont stockées vos données de sauvegarde, au format suivant : gs://BUCKET_NAME. gs:// est obligatoire.

    restore:cloudProvider

    GCP

    La propriété cloudProvider: "GCP" est obligatoire.

    restore:snapshotTimestamp

    TIMESTAMP

    Horodatage de l'instantané de sauvegarde à restaurer. Pour vérifier quels horodatages peuvent être utilisés, accédez à dbStorageBucket et examinez les fichiers présents dans le bucket. Chaque nom de fichier contient une valeur d'horodatage. Exemple : backup_20210203213003_apigee-cassandra-default-0.tgz

    20210203213003 correspond à la valeur snapshotTimestamp que vous utiliseriez si vous souhaitiez restaurer les sauvegardes créées à ce moment-là.

    backup:enabled Vous devez définir cette propriété sur false si elle a déjà été définie sur true.
  2. Si vous n'avez pas de cluster propre pour commencer, suivez la documentation Mettre hors service une région hybride pour Helm afin de rétablir l'état propre de votre installation hybride existante (vous pouvez laisser Cert Manager installé). Vous obtenez ainsi un état identique à celui que vous auriez utilisé pour suivre le manuel de configuration de l'environnement d'exécution Helm jusqu'au début de l'étape 11.

  3. Vérifiez qu'il ne reste aucun pod dans les espaces de noms Apigee :

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Si vous utilisez la sauvegarde CSI, assurez-vous que vous pouvez afficher les instantanés de volume que vous souhaitez utiliser pour le processus de restauration en exécutant la commande suivante:

    kubectl get volumesnapshot -n apigee
              
  5. Installez tous les composants hybrides un par un, comme décrit à l'étape 11 du manuel d'installation. Notez que le pod apigee-cassandra-restore est créé une fois que vous avez exécuté la commande permettant d'installer datastore, mais il ne passe à l'état running qu'après l'installation du composant apigee-org.

Pour en savoir plus sur la sauvegarde et la restauration Cassandra, consultez la page Présentation de la sauvegarde Cassandra.

apigeectl

Dans votre configuration, la sauvegarde Cassandra peut se trouver sur Cloud Storage ou sur un serveur distant. Dans les deux cas, procédez comme suit pour effectuer la restauration :

  1. Vérifiez la version hybride.
    apigeectl version
    Assurez-vous que la version est identique à celle qui a créé les fichiers de sauvegarde dans l'espace de stockage.
  2. Vérifiez que le cluster Kubernetes sur lequel vous effectuez la restauration ne dispose pas d'une installation Apigee hybrid antérieure. Si vous effectuez une restauration sur le cluster existant, exécutez les commandes suivantes pour supprimer l'installation Apigee hybrid existante :
    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. Ouvrez votre fichier overrides.yaml et définissez les propriétés restore sur les valeurs souhaitées :

    Cloud Storage

    Paramètres

    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"

    Exemple

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

    Où :

    Propriété Description
    namespace

    YOUR_RESTORE_NAMESPACE

    Espace de noms à restaurer. Utilisez l'espace de noms de votre cluster d'origine.

    cassandra:hostNetwork

    hostNetwork est obligatoire et doit toujours être défini sur false.

    restore:enabled La restauration est désactivée par défaut. Vous devez définir cette propriété sur true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Le chemin d'accès, sur votre système de fichiers, au compte de service que vous avez créé pour la sauvegarde.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Chemin d'accès au bucket Cloud Storage où sont stockées vos données de sauvegarde, au format suivant : gs://BUCKET_NAME. gs:// est obligatoire.

    restore:cloudProvider

    GCP

    La propriété cloudProvider: "GCP" est obligatoire.

    restore:snapshotTimestamp

    TIMESTAMP

    Horodatage de l'instantané de sauvegarde à restaurer. Pour vérifier quels horodatages peuvent être utilisés, accédez à dbStorageBucket et examinez les fichiers présents dans le bucket. Chaque nom de fichier contient une valeur d'horodatage. Exemple : backup_20210203213003_apigee-cassandra-default-0.tgz

    20210203213003 correspond à la valeur snapshotTimestamp que vous utiliseriez si vous souhaitiez restaurer les sauvegardes créées à ce moment-là.

    backup:enabled Vous devez définir cette propriété sur false si elle a déjà été définie sur true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Le chemin d'accès, sur votre système de fichiers, au fichier JSON du compte de service, qui a été téléchargé lors de l'exécution de ./tools/create-service-account

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Chemin du bucket Cloud Storage au format suivant : gs://BUCKET_NAME. gs:// est obligatoire.

    backup:cloudProvider

    GCP

    La propriété cloudProvider: "GCP" est obligatoire.

    backup:schedule

    SCHEDULE

    L'heure de début de la sauvegarde, spécifiée dans la syntaxe crontab standard. Par défaut : 0 2 * * *

    Hors Cloud Storage

    Paramètres

      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"
      

    Exemple

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

    Où :

    Propriété Description
    namespace

    YOUR_RESTORE_NAMESPACE

    Espace de noms à restaurer. Utilisez l'espace de noms de votre cluster d'origine.

    cassandra:hostNetwork

    hostNetwork est obligatoire et doit toujours être défini sur false.

    restore:enabled La restauration est désactivée par défaut. Vous devez définir cette propriété sur true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Chemin d'accès au fichier de clé privée SSH (nommé ssh_key à l'étape où vous avez créé la paire de clés SSH) dans votre système de fichiers local.

    restore:server

    BACKUP_SERVER_IP

    Adresse IP de votre serveur de sauvegarde.

    restore:storageDirectory

    BACKUP_DIRECTORY

    Nom du répertoire de sauvegarde sur votre serveur de sauvegarde. Il doit s'agir d'un répertoire dans home/apigee (le répertoire de sauvegarde nommé cassandra_backup à l'étape de création du répertoire de sauvegarde).

    restore:cloudProvider

    HYBRID

    La propriété cloudProvider: "HYBRID" est obligatoire.

    restore:snapshotTimestamp

    TIMESTAMP

    Horodatage de l'instantané de sauvegarde à restaurer. Pour vérifier quels horodatages peuvent être utilisés, accédez à dbStorageBucket et examinez les fichiers présents dans le bucket. Chaque nom de fichier contient une valeur d'horodatage. Par exemple, backup_20210203213003_apigee-cassandra-default-0.tgz.

    20210203213003 correspond à la valeur snapshotTimestamp que vous utiliseriez si vous souhaitiez restaurer les sauvegardes créées à ce moment-là.

    backup:enabled Vous devez définir cette propriété sur false si elle a déjà été définie sur true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Chemin d'accès au fichier de clé privée SSH (nommé ssh_key à l'étape où vous avez créé la paire de clés SSH) dans votre système de fichiers local.

    backup:server

    BACKUP_SERVER_IP

    Adresse IP de votre serveur de sauvegarde.

    backup:storageDirectory

    BACKUP_DIRECTORY

    Nom du répertoire de sauvegarde sur votre serveur de sauvegarde. Il doit s'agir d'un répertoire dans home/apigee (le répertoire de sauvegarde nommé cassandra_backup à l'étape de création du répertoire de sauvegarde).

    backup:cloudProvider

    HYBRID

    La propriété cloudProvider: "HYBRID" est obligatoire.

    backup:schedule

    SCHEDULE

    L'heure de début de la sauvegarde, spécifiée dans la syntaxe crontab standard. Par défaut : 0 2 * * *

  4. Créez un déploiement d'exécution hybride. Cela crée un cluster Cassandra et commence à restaurer les données de sauvegarde dans le cluster :
    ${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

Vérifiez la progression du job de restauration et vérifiez que apigeeds et tous les autres pods sont opérationnels :

  1. Vérifiez apigeeds :
    kubectl get apigeeds -n apigee
  2. Vérifiez tous les autres pods :
    kubectl get pods -n apigee

Une fois la restauration terminée et la confirmation que les composants d'exécution sont opérationnels, nous vous recommandons de configurer une sauvegarde sur le cluster :

  1. Supprimez la configuration restore du fichier overrides-restore.yaml.
  2. Ajoutez la configuration backup au fichier overrides-restore.yaml.
  3. Appliquez la configuration backup à l'aide de la commande suivante :

    Helm

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

    apigeectl

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