Planifier des sauvegardes dans Cloud Storage

Cette page explique comment planifier des sauvegardes pour Cassandra dans Cloud Storage. Dans cette méthode, les sauvegardes sont stockées dans le bucket Cloud Storage spécifié.

Pour planifier des sauvegardes Cassandra, procédez comme suit :

  1. Exécutez la commande create-service-account suivante pour créer un compte de service Google Cloud avec le rôle standard roles/storage.objectAdmin. Ce rôle de compte de service vous permet d'écrire les données de sauvegarde dans Cloud Storage. Exécutez la commande suivante dans le répertoire hybrid-base-directory/hybrid-files :
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    Cette commande crée un seul compte de service nommé apigee-non-prod pour l'utiliser dans des environnements hors production et place le fichier de clé téléchargé dans le répertoire ./service-accounts. Pour en savoir plus sur les comptes de service Google Cloud, consultez la page Créer et gérer des comptes de service.
  2. La commande create-service-account enregistre un fichier JSON contenant la clé privée du compte de service. Le fichier est enregistré dans le répertoire où est exécutée la commande. Vous aurez besoin du chemin d'accès à ce fichier lors des étapes suivantes.
  3. Créez un bucket Cloud Storage. Spécifiez une règle de conservation des données raisonnable pour le bucket. Apigee recommande une règle de conservation des données de 15 jours.
  4. Ouvrez votre fichier overrides.yaml.
  5. Ajoutez-y les propriétés cassandra.backup suivantes pour activer la sauvegarde. Ne supprimez aucune des propriétés déjà configurées.

    Paramètres

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

    Exemple

      ...
    
      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: "/Users/myhome/.ssh/my-cassandra-backup-sa.json"
          dbStorageBucket: "gs://myname-cassandra-backup"
          schedule: "45 23 * * 6"
          cloudProvider: "GCP"
          
    
        ... 
  6. Où :
    Valeur Description
    backup:enabled La sauvegarde est désactivée par défaut. Vous devez définir cette propriété sur true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    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 la commande ./tools/create-service-account.

    Vous pouvez également fournir un chemin d'accès relatif au fichier. Le chemin d'accès au répertoire hybrid-base-directory/hybrid-files est relatif.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

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

    backup:cloudProvider

    GCP/HYBRID

    Pour effectuer une sauvegarde Cloud Storage, définissez la propriété sur GCP. Par exemple, cloudProvider: "GCP".

    Pour effectuer une sauvegarde sur un serveur distant, définissez la propriété sur HYBRID. Par exemple, cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

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

  7. Appliquez les changements de configuration au nouveau cluster. Exemple :
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    YOUR_OVERRIDES_FILE est le chemin d'accès au fichier que vous venez de modifier.

  8. Vérifiez la tâche de sauvegarde. Exemple :
    kubectl get cronjob -n apigee
      NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      apigee-cassandra-backup   33 * * * *   False     0        <none>          94s