Backup e ripristino di cluster con bmctl

In questa pagina viene descritto come utilizzare bmctl per eseguire il backup e ripristinare i cluster creati con Cluster Anthos su Bare Metal. Queste istruzioni si applicano a tutti i tipi di cluster supportati dai cluster Anthos su Bare Metal.

Il processo di backup e ripristino di bmctl non include volumi permanenti. I volumi creati dal provisioner del volume locale (LVP) non vengono modificati.

Eseguire il backup di un cluster

Il comando bmctl backup cluster aggiunge le informazioni del cluster dall'archivio etcd e i certificati PKI del cluster specificato al cluster in un file tar. L'archivio etcd è il backup backup di Kubernetes per tutti i dati del cluster e contiene tutti gli oggetti Kubernetes e gli oggetti personalizzati necessari per gestire lo stato del cluster. I certificati PKI vengono utilizzati per l'autenticazione su TLS. Il backup di questi dati viene eseguito dal piano di controllo del cluster o da uno dei piani di controllo per un deployment ad alta disponibilità (HA).

Il file tar di backup contiene le credenziali sensibili, incluse le chiavi dell'account di servizio e la chiave SSH. Archivia i file di backup in un posto sicuro. Per impedire l'esposizione involontaria dei file, il processo di backup dei cluster Anthos su Bare Metal utilizza solo file in memoria.

Effettua regolarmente il backup dei cluster per assicurarti che i dati degli snapshot siano relativamente aggiornati. Regola la frequenza dei backup per riflettere la frequenza delle modifiche significative ai tuoi cluster.

La versione bmctl che utilizzi per eseguire il backup di un cluster deve corrispondere alla versione del cluster di gestione.

Per eseguire il backup di un cluster:

  1. Assicurati che il cluster funzioni correttamente, con credenziali di lavoro e connettività SSH a tutti i nodi.

    Lo scopo del processo di backup è acquisire il tuo cluster in uno stato buono noto, in modo da poter ripristinare l'operazione in caso di errore catastrofico.

    Utilizza il comando seguente per controllare il tuo cluster:

    bmctl check cluster -c CLUSTER_NAME
    

    Sostituisci CLUSTER_NAME con il nome del cluster di cui vuoi eseguire il backup.

  2. Esegui il comando seguente per assicurarti che il cluster di destinazione non sia in uno stato di riconciliazione:

    kubectl describe cluster CLUSTER_NAME -n CLUSTER_NAMESPACE
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster di cui eseguire il backup.
    • CLUSTER_NAMESPACE: lo spazio dei nomi per il cluster. Per impostazione predefinita, gli spazi dei nomi dei cluster Anthos su Bare Metal sono il nome del cluster preceduto da cluster-. Ad esempio, se al tuo cluster viene assegnato il nome test, lo spazio dei nomi ha un nome cluster-test.
  3. Controlla l'output comando per status.conditions di tipo "Reconcile".

    Lo stato"False"per status.conditions significa che il cluster è stabile e pronto per il backup.

  4. Esegui questo comando per eseguire il backup del cluster:

    bmctl backup cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster di cui eseguire il backup.
    • ADMIN_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione.

    Per impostazione predefinita, il file tar di backup è stato salvato nella directory di Workspace (bmctl-workspace, per impostazione predefinita) nella workstation di amministrazione. Il file tar è denominato CLUSTER_NAME_backup_TIMESTAMP.tar.gz, dove CLUSTER_NAME è il nome del cluster di cui viene eseguito il backup e TIMESTAMP è la data e l'ora in cui è stato eseguito il backup. Ad esempio, se il nome del cluster è testuser, il nome del file di backup è testuser_backup_2006-01-02T150405Z0700.tar.gz.

    Per specificare un nome e una posizione diversi per il file di backup, utilizza il flag --backup-file.

Il file di backup scade dopo un anno e il processo di ripristino del cluster non funziona con i file di backup scaduti.

Ripristina un cluster

Il ripristino di un cluster da un backup è l'ultima risorsa e deve essere utilizzato quando un cluster ha avuto un errore catastrofico e non può essere restituito in alcun altro modo. Ad esempio, i dati etcd sono danneggiati o il pod etcd si trova in un loop di arresto anomalo.

Il file tar di backup contiene le credenziali sensibili, incluse le chiavi dell'account di servizio e la chiave SSH. Per impedire l'esposizione involontaria dei file, il cluster Anthos sul processo di ripristino bare metal utilizza solo file in memoria.

La versione bmctl che utilizzi per ripristinare un cluster deve corrispondere alla versione del cluster di gestione.

Per ripristinare un cluster:

  1. Assicurati che tutte le macchine nodo disponibili per il cluster al momento del backup funzionino e siano raggiungibili.

  2. Assicurati che la connettività SSH tra i nodi funzioni con le chiavi SSH utilizzate al momento del backup.

    Queste chiavi SSH vengono reintegrate come parte del processo di ripristino.

  3. Assicurati che le chiavi dell'account di servizio utilizzate al momento del backup siano ancora attive.

    Queste chiavi dell'account di servizio vengono reintegrate per il cluster ripristinato.

  4. Per ripristinare un cluster autonomo o un cluster di amministrazione o ibrido gestito autonomamente, esegui il comando seguente:

    bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster di cui stai eseguendo il ripristino.
    • BACKUP_FILE: percorso e nome del file di backup utilizzato.
  5. Per ripristinare un cluster utente o un cluster di amministrazione o ibrido che non sono autogestiti, esegui il comando seguente:

    bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE \
         --kubeconfig ADMIN_KUBECONFIG
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster di cui stai eseguendo il ripristino.
    • BACKUP_FILE: percorso e nome del file di backup utilizzato.
    • ADMIN_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione.

Al termine del processo di ripristino, verrà generato un nuovo file kubeconfig per il cluster ripristinato.