Questa pagina descrive come pianificare i backup per Cassandra senza Cloud Storage. In questo metodo, i backup vengono archiviati su un server remoto specificato da te anziché in un bucket Cloud Storage. Apigee utilizza SSH per comunicare con il server remoto.
Devi pianificare i backup come job cron. Una volta applicata una pianificazione del backup al cluster ibrido, un job di backup Kubernetes viene eseguito periodicamente in base alla pianificazione nel piano di runtime. Il job attiva uno script di backup su ogni nodo Cassandra del cluster ibrido che raccoglie tutti i dati sul nodo, crea un file di archivio (compresso) dei dati e invia l'archivio al server specificato nel file overrides.yaml.
I passaggi riportati di seguito 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.
- Crea una coppia di chiavi SSH e memorizza il file della chiave privata in un percorso accessibile dal tuo piano di runtime ibrido. 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.comEnter 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
-Cnel comandossh-keygendiventa un commento incluso nella chiavesshappena creata. La stringa di input può essere qualsiasi stringa. Quando utilizzi un nome account sotto forma di exampleuser@example.com, puoi identificare rapidamente quale account corrisponde alla chiave. - Crea un account utente sul server di backup con il nome
apigee. Assicurati che il nuovo utenteapigeeabbia una home directory in/home. - Sul server di backup, crea una directory
sshnella nuova directory/home/apigee. - Copia la chiave pubblica (
ssh_key.pubnell'esempio precedente) in un file denominatoauthorized_keysnella nuova directory/home/apigee/ssh. Ad esempio:cd /home/apigee
mkdir .sshcd .sshvi 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'utenteapigeeabbia 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 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 l'indirizzo IP del server:
ssh apigee@BACKUP_SERVER_IP
- Accedi alla shell del 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:enabledIl backup è disattivato per impostazione predefinita. Devi impostare questa proprietà su true.backup:keyFilePATH_TO_PRIVATE_KEY_FILE
Il percorso nel file system locale del file della chiave privata SSH (chiamato
ssh_keynel passaggio in cui hai creato la coppia di chiavi SSH).backup:serverBACKUP_SERVER_IP
L'indirizzo IP del server di backup.
backup:storageDirectoryBACKUP_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_backupnel passaggio in cui hai creato la directory di backup).backup:cloudProviderGCP/HYBRIDPer 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:scheduleSCHEDULE
L'ora di inizio del backup, specificata in sintassi crontab standard. Valore predefinito:
0 2 * * * - Utilizza
apigeectlper applicare la configurazione del backup all'ambito 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