Cette page explique comment planifier des sauvegardes pour Cassandra sans Cloud Storage.
Dans cette méthode, les sauvegardes sont stockées sur un serveur distant que vous avez spécifié au lieu d'un bucket Cloud Storage. Apigee utilise SSH pour communiquer avec le serveur distant.
Vous devez planifier les sauvegardes en tant que tâches cron. Une fois que la planification d'une sauvegarde a été appliquée à votre cluster hybride, une tâche de sauvegarde Kubernetes est exécutée régulièrement en fonction de la planification dans le plan d'exécution. La tâche déclenche un script de sauvegarde sur chaque nœud Cassandra de votre cluster hybride. Ce script collecte toutes les données du nœud, crée un fichier d'archive (compressé) des données et envoie l'archive au serveur spécifié dans votre fichier overrides.yaml.
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.
Désignez un serveur Linux ou Unix pour vos sauvegardes. Ce serveur doit être accessible à l'aide de 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. Vous devez utiliser un mot de passe vide pour votre paire de clés, sinon la sauvegarde échouera. Exemple :
Où exampleuser@example.com est une chaîne.
Toute chaîne qui suit -C dans la commande ssh-keygen devient un commentaire inclus dans la clé ssh qui vient d'être créée. La chaîne d'entrée peut être n'importe quelle chaîne. Lorsque vous utilisez un nom de compte au format exampleuser@example.com, vous pouvez rapidement identifier le compte associé à la clé.
Créez un compte utilisateur nommé apigee sur le serveur de sauvegarde. Assurez-vous que le nouvel utilisateur apigee possède 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. Exemple :
cd /home/apigee
mkdir .sshcd .sshvi authorized_keys
Sur votre serveur de sauvegarde, créez un répertoire de sauvegarde dans le répertoire /home/apigee/. Le répertoire de sauvegarde peut être n'importe quel répertoire tant que l'utilisateur apigee y a accès. 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 à l'aide de SSH :
Connectez-vous à l'interface système de votre pod Cassandra. Exemple :
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
GCP/HYBRID
Pour effectuer une sauvegarde Cloud Storage, définissez la propriété sur GCP. Exemple : cloudProvider: "GCP".
Pour effectuer une sauvegarde sur un serveur distant, définissez la propriété sur HYBRID. Exemple : cloudProvider: "HYBRID".
backup:schedule
SCHEDULE
L'heure de début de la sauvegarde, spécifiée dans la syntaxe crontab standard. Les heures sont indiquées dans le fuseau horaire local du cluster Kubernetes. Par défaut : 0 2 * * *
Utilisez la commande apigeectl pour appliquer la configuration de la sauvegarde au champ d'application de stockage de votre cluster :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/03 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/03 (UTC)."],[[["\u003cp\u003eThis documentation outlines the process for scheduling Cassandra backups in Apigee hybrid environments to a remote server using SSH instead of Cloud Storage.\u003c/p\u003e\n"],["\u003cp\u003eBackups are scheduled as \u003ccode\u003ecron\u003c/code\u003e jobs, which trigger a Kubernetes backup job on each Cassandra node to collect, compress, and send data to a specified remote server.\u003c/p\u003e\n"],["\u003cp\u003eTo configure the backup, users must set up a remote Linux or Unix server with SSH enabled, create an SSH key pair (with no passphrase), and create a user directory with specific permissions on the server.\u003c/p\u003e\n"],["\u003cp\u003eThe backup schedule, remote server details, SSH key path, and storage directory are defined in the \u003ccode\u003eoverrides.yaml\u003c/code\u003e file under the \u003ccode\u003ecassandra:backup:\u003c/code\u003e section.\u003c/p\u003e\n"],["\u003cp\u003eApplying backup configuration on the existing cluster will initiate a rolling restart of the Cassandra pods.\u003c/p\u003e\n"]]],[],null,["# Scheduling backups in a remote server\n\n| You are currently viewing version 1.10 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nThis page describes how to schedule backups for Cassandra without the Cloud Storage.\nIn this method, backups are stored on a remote server specified by you instead of a Cloud Storage bucket. Apigee uses\nSSH to communicate with the remote server.\n\nYou must schedule the backups as `cron` jobs. Once a backup schedule\nhas been applied to your hybrid cluster, a Kubernetes backup job is\nperiodically executed according to the schedule in the runtime plane. The job triggers a\nbackup script on each Cassandra node in your hybrid cluster that collects all the\ndata on the node, creates an archive (compressed) file of the data, and sends the archive\nto the server specified in your `overrides.yaml` file.\n| **Note:**\n|\n| - You must ensure there is enough space on the file system for the backups, and adjust the frequency of the backups to avoid unnecessarily filling the allotted storage space. Apigee does not dictate a retention policy for the backup files. You may want to create a retention policy for files appropriate to your installation.\n| - Applying backup configuration on the existing cluster will rolling restart Cassandra pods.\n\n\nThe following steps include common examples for completing specific tasks, like creating an SSH\nkey pair. Use the methods that are appropriate to your installation.\n\n\nThe procedure has the following parts:\n\n- [Set up the server and SSH](#server-ssh)\n- [Set the schedule and destination for backup](#overrides-backup)\n\n### Set up the server and SSH\n\n1. Designate a Linux or Unix server for your backups. This server must be reachable using SSH from your Apigee hybrid runtime plane. It must have enough storage for your backups.\n2. Set up an SSH server on the server, or ensure that it has a secure SSH server configured. **Caution:** For security purposes, make sure your SSH server is up to date.\n3. Create an SSH key pair and store the private key file in a path that is accessible from your hybrid runtime plane. **You must use a blank password for your key pair or the backup will fail** . For example: \n\n ssh-keygen -t rsa -b 4096 -C \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eexampleuser\u003c/span\u003e\u003cspan class=\"devsite-syntax-nv\"\u003e@example\u003c/span\u003e\u003cspan class=\"devsite-syntax-p\"\u003e.\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003ecom\u003c/span\u003e\u003c/var\u003e\n Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key\n Enter passphrase (empty for no passphrase):\n Enter same passphrase again:\n Your identification has been saved in ssh_key\n Your public key has been saved in ssh_key.pub\n The key fingerprint is:\n SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com\n The key's randomart image is:\n +---[RSA 4096]----+\n | +. ++X|\n | . . o.=.*+|\n | . o . . o==o |\n | . . . =oo+o...|\n | . S +E oo .|\n | . . .. . o .|\n | . . . . o.. |\n | . ...o ++. |\n | .. .. +o+. |\n +----[SHA256]-----+\n\n\n Where: \u003cvar translate=\"no\"\u003eexampleuser@example.com\u003c/var\u003e is a string.\n Any string that follows `-C` in the `ssh-keygen`\n command becomes a comment included in the newly created `ssh`\n key. The input string can be any string. When you use an account name\n in the form of \u003cvar translate=\"no\"\u003eexampleuser@example.com\u003c/var\u003e, you can quickly\n identify which account goes with the key.\n4. Create a user account on the backup server with the name `apigee`. Make sure the new `apigee` user has a home directory under `/home`.\n5. On the backup server, create an `.ssh` directory in the new `/home/apigee` directory.\n6. Copy the public key (`ssh_key.pub` in the previous example) into a file named `authorized_keys` in the new `/home/apigee/.ssh` directory. For example: \n\n cd /home/apigee\n mkdir .ssh\n cd .ssh\n vi authorized_keys\n\n7. On your backup server, create a backup directory within the `/home/apigee/` directory. The backup directory can be any directory as long as the `apigee` user has access to it. For example: \n\n cd /home/apigee\n mkdir cassandra-backup\n\n8. Test the connection. You need to make sure that your Cassandra pods can connect to your backup server using SSH:\n 1. Log into the shell of your Cassandra pod. For example: \n\n ```\n kubectl exec -it -n apigee APIGEE_CASSANDRA_DEFAULT_0 -- /bin/bash\n ```\n\n\n Where \u003cvar translate=\"no\"\u003eAPIGEE_CASSANDRA_DEFAULT_0\u003c/var\u003e is the name of a Cassandra pod. Change this to\n the name of the pod you want to connect from.\n 2. Connect by SSH to your backup server, using the private SSH key mounted the Cassandra pod and server IP address: \n\n ```\n ssh -i /var/secrets/keys/key apigee@BACKUP_SERVER_IP\n ```\n | **Note:** You may see a warning at this point saying your server's fingerprint is unrecognized and asks if you would like to continue. You can continue at that prompt and verify the SSH configuration.\n\n### Set the schedule and destination for backup\n\n\nYou set the schedule and destination for backups in your `overrides.yaml` file.\n\n1. Add the following parameters to your `overrides.yaml` file:\n\n ### Parameters\n\n ```actionscript-3\n cassandra:\n backup:\n enabled: true\n keyFile: \"\u003cvar translate=\"no\"\u003ePATH_TO_PRIVATE_KEY_FILE\u003c/var\u003e\"\n server: \"\u003cvar translate=\"no\"\u003eBACKUP_SERVER_IP\u003c/var\u003e\"\n storageDirectory: \"/home/apigee/\u003cvar translate=\"no\"\u003eBACKUP_DIRECTORY\u003c/var\u003e\"\n cloudProvider: \"HYBRID\" # required verbatim \"HYBRID\" (all caps)\n schedule: \"\u003cvar translate=\"no\"\u003eSCHEDULE\u003c/var\u003e\"\n ```\n\n ### Example\n\n ```actionscript-3\n cassandra:\n backup:\n enabled: true\n keyFile: \"/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key\"\n server: \"34.56.78.90\"\n storageDirectory: \"/home/apigee/cassbackup\"\n cloudProvider: \"HYBRID\"\n schedule: \"0 2 * * *\"\n ```\n\n\n Where:\n\n2. Use `apigeectl` to apply the backup configuration to the storage scope of your cluster: \n\n ```\n $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE\n ```\n\n\n Where \u003cvar translate=\"no\"\u003eYOUR_OVERRIDES_FILE\u003c/var\u003e is the path to the overrides file you just edited.\n3. Verify the backup job. For example: \n\n ```\n kubectl get cronjob -n apigee\n ``` \n\n ```component-pascal\n NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE\n apigee-cassandra-backup 33 * * * * False 0 \u003cnone\u003e 94s\n ```"]]