Pianificazione dei backup in un server remoto

Questa pagina descrive 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 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 seguenti includono esempi comuni per il completamento di attività specifiche, come la creazione di una connessione SSH una coppia di chiavi. Utilizza i metodi appropriati alla tua installazione.

La procedura comprende le seguenti parti:

Configura il server e SSH

  1. Specifica un server Linux o Unix per i backup. Questo server deve essere raggiungibile tramite SSH da il tuo piano di runtime ibrido Apigee. Deve avere spazio di archiviazione sufficiente per i backup.
  2. Configura un server SSH sul server o assicurati che sia configurato un server SSH sicuro.
  3. 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 in ssh-keygen diventa un commento incluso nell'elemento ssh appena creato chiave. 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.

  4. Crea un account utente sul server di backup con il nome apigee. Assicurati che il nuovo utente apigee ha una home directory in /home.
  5. Sul server di backup, crea una directory .ssh nel nuovo /home/apigee .
  6. Copia la chiave pubblica (ssh_key.pub nell'esempio precedente) in un file denominato authorized_keys nella nuova directory /home/apigee/.ssh. Ad esempio:
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. Sul server di backup, crea una directory di backup all'interno di /home/apigee/ . La directory di backup può essere qualsiasi directory, purché l'utente apigee disponga dell'accesso che le sono assegnati. Ad esempio:
    cd /home/apigee
    mkdir cassandra-backup
  8. Testa la connessione. Devi assicurarti che i pod Cassandra possano connettersi server di backup mediante SSH:
    1. 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. Cambia in il nome del pod da cui vuoi connetterti.

    2. Connettiti tramite SSH al server di backup utilizzando la chiave SSH privata montata sul pod Cassandra e sull'indirizzo IP del server:
      ssh -i /var/secrets/keys/key apigee@BACKUP_SERVER_IP

Imposta la pianificazione e la destinazione per il backup

Sei tu a impostare la pianificazione e la destinazione dei backup nel file overrides.yaml.

  1. 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

    Percorso del file system locale al file della chiave privata SSH (denominato 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 è denominata cassandra_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 avvio del backup, specificata in sintassi standard di crontab. Predefinita: 0 2 * * *

  2. Applica la configurazione di backup all'ambito dello spazio di archiviazione del tuo cluster:

    Helm

    helm upgrade datastore apigee-datastore/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore

    Dove OVERRIDES_FILE è il percorso del file degli override che hai appena modificato.

  3. 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