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 on bare metal. Queste istruzioni si applicano a tutti i tipi di cluster supportati da Cluster Anthos su Bare Metal.

Il processo di backup e ripristino di bmctl non include volumi permanenti. Tutti i volumi creati dal provisioner del volume locale (LVP) vengono lasciati inalterati.

Esegui il backup di un cluster

Il comando bmctl backup cluster aggiunge le informazioni sul cluster etcd store e i certificati PKI per il cluster specificato a un file tar. L'archivio etcd è il 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 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 i file in memoria.

Esegui regolarmente il backup dei tuoi 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 il backup di un cluster deve corrispondere a quella del cluster di gestione.

Per eseguire il backup di un cluster:

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

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

    Utilizza il comando seguente per controllare il cluster:

    bmctl check cluster -c CLUSTER_NAME
    

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

  2. Esegui questo comando per assicurarti che il cluster di destinazione non sia in 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 assegni al cluster il nome test, lo spazio dei nomi ha un nome come cluster-test.
  3. Controlla l'output comando per status.conditions di tipo "Riconciliazione".

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

  4. Esegui il comando seguente 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 salvato nella directory di lavoro (bmctl-workspace, per impostazione predefinita) sulla 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 del backup del 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 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 al servizio in 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 credenziali sensibili, incluse le chiavi dell'account di servizio e la chiave SSH. Per impedire l'esposizione involontaria dei file, il processo di ripristino di Cluster Anthos on bare metal utilizza solo file in memoria.

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

Per ripristinare un cluster:

  1. Assicurati che tutte le macchine nodo disponibili per il cluster al momento del backup funzionino correttamente 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 nell'ambito del processo di ripristino.

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

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

  4. Per ripristinare un cluster autonomo o un cluster di amministrazione o ibrido autogestito, esegui questo comando:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster da ripristinare.
    • BACKUP_FILE: percorso e nome del file di backup che stai utilizzando.
  5. Per ripristinare un cluster utente oppure un cluster di amministrazione o ibrido non autogestito, esegui questo comando:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster da ripristinare.
    • BACKUP_FILE: percorso e nome del file di backup che stai utilizzando.
    • ADMIN_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione.

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