Cette section explique comment configurer la sauvegarde et la récupération de votre base de données Cassandra en utilisant ssh et votre système de fichiers plutôt que Google Cloud. Voir également :
Présentation de la sauvegarde et de la récupération Cassandra sans services Google Cloud
La sauvegarde sans services Google Cloud permet de stocker les sauvegardes de votre base de données Cassandra dans des fichiers compressés dans le système de fichiers d'un serveur que vous spécifiez. Les sauvegardes sont effectuées suivant une programmation que vous spécifiez dans votre fichier de remplacement. La connexion au serveur s'effectue via une connexion SSH sécurisée.
Configuration des sauvegardes sans services Cloud :
Les étapes suivantes incluent des exemples de tâches typiques, comme la création d'une paire de clés SSH. Utilisez les méthodes adaptées à votre installation.
La procédure comprend les éléments suivants :
- Configurer le serveur et SSH
- Planifier les sauvegardes et définir leur destination
- Configurer la restauration
Configurer le serveur et SSH
- Désignez un serveur Linux ou Unix pour vos sauvegardes. Ce serveur doit être accessible via SSH à partir de votre plan d'exécution Apigee hybrid. Il doit disposer de suffisamment d'espace de stockage pour vos sauvegardes.
- Configurez un serveur SSH sur le serveur, ou vérifiez qu'un serveur SSH sécurisé est déjà configuré.
- Créez une paire de clés SSH et stockez le fichier de clé privée dans un emplacement accessible à partir de votre plan d'exécution hybride. N'utilisez pas de mot de passe vide pour votre paire de clés. Par exemple :
ssh-keygen -t rsa -b 4096 -C exampleuser@example.com
Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh_key Your public key has been saved in ssh_key.pub The key fingerprint is: SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com The key's randomart image is: +---[RSA 4096]----+ | +. ++X| | . . o.=.*+| | . o . . o==o | | . . . =oo+o...| | . S +E oo .| | . . .. . o .| | . . . . o.. | | . ...o ++. | | .. .. +o+. | +----[SHA256]-----+ - Créez un compte utilisateur nommé
apigee
sur le serveur de sauvegarde. Assurez-vous que le nouvel utilisateurapigee
dispose d'un répertoire d'accueil sous/home
. - Sur le serveur de sauvegarde, créez un répertoire
ssh
dans le nouveau répertoire/home/apigee
. - Copiez la clé publique (
ssh_key.pub
dans l'exemple précédent) dans un fichier nomméauthorized_keys
dans le nouveau répertoire/home/apigee/ssh
. Par exemple :cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- Sur votre serveur de sauvegarde, créez un répertoire de sauvegarde dans le répertoire
/home/apigee/
. Il peut s'agir de n'importe quel répertoire auquel l'utilisateur "apigee" a accès. Par exemple :cd /home/apigee
mkdir cassandra-backup
- Testez la connexion. Vous devez vous assurer que vos pods Cassandra peuvent se connecter à votre serveur de sauvegarde via SSH :
- Connectez-vous à l'interface système de votre pod Cassandra. Par exemple :
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
Où apigee-cassandra-default-0 est le nom d'un pod Cassandra. Remplacez ce nom par le nom du pod à partir duquel vous souhaitez vous connecter.
- Connectez-vous via SSH à votre serveur de sauvegarde en utilisant l'adresse IP du serveur :
ssh apigee@backup-server-ip
- Connectez-vous à l'interface système de votre pod Cassandra. Par exemple :
Planifier les sauvegardes et définir leur destination
Vous devez définir le calendrier et la destination des sauvegardes dans le fichier overrides.yaml
.
- Ajoutez les paramètres suivants au fichier
overrides.yaml
:Paramètres
cassandra: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
cassandra: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 backup:enabled
La sauvegarde est désactivée par défaut. Vous devez définir cette propriété sur true
.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-ip Adresse IP de votre serveur de sauvegarde. 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).HYBRID
La propriété cloudProvider: "HYBRID"
est obligatoire.schedule L'heure de début de la sauvegarde, spécifiée dans la syntaxe crontab standard. Par défaut : 0 2 * * *
Remarque : Évitez de programmer une sauvegarde qui démarre peu de temps après l'application de la configuration de sauvegarde à votre cluster. Lorsque vous appliquez la configuration de sauvegarde, Kubernetes recrée les nœuds Cassandra. Si la sauvegarde se lance avant le redémarrage des nœuds (qui peut prendre plusieurs minutes), la sauvegarde échoue.
- Utilisez la commande
apigeectl
pour appliquer la configuration de la sauvegarde au champ d'application de stockage de votre cluster :$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file
Où your-overrides-file est le chemin d'accès au fichier que vous venez de modifier.
Configurer la restauration
La restauration récupère les données du fichier de sauvegarde comportant le code temporel spécifié et les restaure dans un nouveau cluster Cassandra ayant le même nombre de pods. Le nouveau cluster doit avoir un espace de noms différent de celui du cluster du plan d'exécution.
Pour restaurer des sauvegardes Cassandra :
- Créez un nouveau cluster Kubernetes avec un nouvel espace de noms. Vous ne pouvez pas utiliser le même cluster/espace de noms que celui utilisé pour l'installation hybride d'origine.
- Dans le répertoire racine d'installation hybride, créez un nouveau fichier
overrides-restore.yaml
. - Copiez la configuration Cassandra complète à partir de votre fichier
overrides.yaml
d'origine dans le nouveau fichier. - Ajoutez les paramètres suivants au fichier
overrides-restore.yaml
:Paramètres
namespace: restore-namespace cassandra: 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: "backup-to-restore"
Exemple
namespace: cassandra-restore cassandra: 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"
Où :
Propriété Description restore-namespace Nom du nouvel espace de noms pour le nouveau cluster Cassandra. N'utilisez pas le même espace de noms que celui utilisé pour votre cluster d'origine. restore:enabled
La restauration est désactivée par défaut. Vous devez définir cette propriété sur true
.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-ip Adresse IP de votre serveur de sauvegarde. 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).HYBRID
La propriété cloudProvider: "HYBRID"
est obligatoire.backup-to-restore Sauvegarde spécifique que vous souhaitez restaurer, spécifiée en utilisant la syntaxe crontab standard (sans caractère générique). - Utilisez la commande
apigeectl
pour appliquer la configuration de la sauvegarde au champ d'application de stockage de votre cluster :$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file
Où your-overrides-restore-file est le chemin d'accès au fichier
overrides-restore.yaml
que vous venez de modifier.