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
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 :
- Vérifiez la version hybride.
Assurez-vous que la version est identique à celle qui a créé les fichiers de sauvegarde dans l'espace de stockage.apigeectl version
- 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
- Ouvrez votre fichier
overrides.yaml
et définissez les propriétésrestore
sur les valeurs souhaitées :Cloud Storage
Paramètres
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"
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: true 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 surfalse
.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
Où 20210203213003 correspond à la valeur
snapshotTimestamp
que vous utiliseriez si vous souhaitiez restaurer les sauvegardes créées à ce moment-là.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
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 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"
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: 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 * * *" ...
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 surfalse
.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. Exemple :backup_20210203213003_apigee-cassandra-default-0.tgz
Où 20210203213003 correspond à la valeur
snapshotTimestamp
que vous utiliseriez si vous souhaitiez restaurer les sauvegardes créées à ce moment-là.backup:enabled
La sauvegarde est désactivée par défaut. Vous devez définir cette propriété 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 * * *
- 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 de la tâche de restauration et vérifiez que
apigeeds
et tous les autres pods sont opérationnels :- Pour vérifier
apigeeds
:kubectl get apigeeds -n apigee
- Pour vérifier tous les autres pods, procédez comme suit :
kubectl get pods -n apigee
- Pour vérifier
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 :
- Supprimez la configuration
restore
du fichieroverrides-restore.yaml
. - Ajoutez la configuration
backup
au fichieroverrides-restore.yaml
. - Appliquez la configuration
backup
à l'aide de la commande suivante :./apigeectl apply -f ../overrides-restore.yaml