In questa pagina viene descritto come pianificare backup per Cassandra senza Cloud Storage. Con questo metodo, i backup vengono archiviati su un server remoto da te specificato anziché su un bucket Cloud Storage. Apigee utilizza tramite SSH per comunicare con il server remoto.
Devi pianificare i backup come job cron
. Dopo la pianificazione del backup
applicato al tuo cluster ibrido, viene eseguito
eseguite periodicamente in base alla pianificazione
nel piano di runtime. Il job attiva un'istanza
script di backup su ciascun nodo Cassandra nel tuo cluster ibrido che raccoglie tutti
dati sul nodo, crea un file di archivio (compresso) dei dati e invia l'archivio
al server specificato nel file overrides.yaml
.
I passaggi che seguono includono esempi comuni per completare attività specifiche, come la creazione di una coppia di chiavi SSH. Utilizza i metodi appropriati per la tua installazione.
La procedura è composta dalle seguenti parti:
Configura il server e SSH
- Designa un server Linux o Unix per i backup. Questo server deve essere raggiungibile tramite SSH dal piano di runtime ibrido Apigee. Deve avere spazio di archiviazione sufficiente per i backup.
- Configura un server SSH sul server o assicurati che sia configurato un server SSH sicuro.
- Creare una coppia di chiavi SSH e archiviare il file della chiave privata in un percorso accessibile dal server
nel piano di runtime. Devi utilizzare una password vuota per la coppia di chiavi, altrimenti il backup non andrà a buon fine. Ad esempio:
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]-----+Dove: exampleuser@example.com è una stringa. Qualsiasi stringa che segue
-C
nel comandossh-keygen
diventa un commento incluso nella chiavessh
appena creata. La stringa di input può essere qualsiasi stringa. Quando utilizzi un nome account sotto forma di exampleuser@example.com, puoi eseguire rapidamente identificare l'account associato alla chiave. - Crea un account utente sul server di backup con il nome
apigee
. Assicurati che il nuovo utenteapigee
ha una home directory in/home
. - Sul server di backup, crea una directory
.ssh
nella nuova directory/home/apigee
. - Copia la chiave pubblica (
ssh_key.pub
nell'esempio precedente) in un file denominatoauthorized_keys
nella nuova directory/home/apigee/.ssh
. Ad esempio:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- Sul server di backup, crea una directory di backup all'interno della directory
/home/apigee/
. La directory di backup può essere qualsiasi directory, a condizione che l'utenteapigee
abbia accesso. Ad esempio:cd /home/apigee
mkdir cassandra-backup
- Testa la connessione. Devi assicurarti che i pod Cassandra possano connettersi al
server di backup utilizzando SSH:
- Accedi alla shell del tuo pod Cassandra. Ad esempio:
kubectl exec -it -n apigee APIGEE_CASSANDRA_DEFAULT_0 -- /bin/bash
Dove APIGEE_CASSANDRA_DEFAULT_0 è il nome di un pod Cassandra. Modificalo con il nome del pod da cui vuoi connetterti.
- Connettiti tramite SSH al server di backup utilizzando la chiave SSH privata montata sul pod Cassandra e l'indirizzo IP del server:
ssh -i /var/secrets/keys/key apigee@BACKUP_SERVER_IP
- Accedi alla shell del tuo pod Cassandra. Ad esempio:
Imposta la pianificazione e la destinazione del backup
Imposti la pianificazione e la destinazione dei backup nel file overrides.yaml
.
- Aggiungi i seguenti parametri al file
overrides.yaml
:Parametri
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"
Esempio
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 * * *"
Dove:
Proprietà Descrizione backup:enabled
Il backup è disattivato per impostazione predefinita. Devi impostarlo a true
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Il percorso nel file system locale del file della chiave privata SSH (chiamato
ssh_key
nel passaggio in cui hai creato la coppia di chiavi SSH).backup:server
BACKUP_SERVER_IP
L'indirizzo IP del server di backup.
backup:storageDirectory
BACKUP_DIRECTORY
Il nome della directory di backup sul server di backup. Deve essere una directory all'interno di
home/apigee
(la directory di backup è denominatacassandra_backup
nel passaggio in cui hai creato la directory di backup).backup:cloudProvider
GCP/HYBRID
Per un backup di Cloud Storage, imposta la proprietà su
GCP
. Ad esempio:cloudProvider: "GCP"
.Per un backup del server remoto, imposta la proprietà su
HYBRID
. Ad esempio:cloudProvider: "HYBRID"
.backup:schedule
SCHEDULE
L'ora di inizio del backup, specificata in sintassi crontab standard. Predefinita:
0 2 * * *
- Utilizza
apigeectl
per applicare la configurazione del backup all'ambito dello spazio di archiviazione del tuo cluster:$APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE
dove YOUR_OVERRIDES_FILE è il percorso del file delle sostituzioni che hai appena modificato.
- Verifica il job di backup. Ad esempio:
kubectl get cronjob -n apigee
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s