Questo documento descrive come eseguire il backup e il ripristino dei cluster di amministrazione e utente di Google Distributed Cloud versione 1.32 e successive in cui è attivato il cluster avanzato.
La procedura di backup e ripristino di gkectl
non include i volumi persistenti. Tutti i volumi creati dal provisioner del volume locale (LVP) rimangono invariati.
Eseguire il backup di un cluster
Il comando gkectl backup cluster
aggiunge le informazioni del cluster dal repository etcd e i certificati PKI per il cluster specificato a un file tar. Lo spazio di archiviazione etcd è lo spazio di archiviazione di supporto di Kubernetes per tutti i dati del cluster e contiene tutti gli oggetti Kubernetes e personalizzati necessari per gestire lo stato del cluster. I certificati PKI vengono utilizzati per l'autenticazione tramite Transport Layer Security (TLS).
Il backup di questi dati viene eseguito dal control plane del cluster o da uno dei control plane per un deployment ad alta disponibilità (HA).
Il file tar di backup contiene credenziali sensibili, tra cui le chiavi dell'account di servizio e la chiave SSH. Archivia i file di backup in un luogo sicuro. Per evitare l'esposizione involontaria dei file, il processo di backup utilizza solo file in memoria.
Esegui regolarmente il backup dei cluster per assicurarti che i dati degli snapshot siano relativamente aggiornati. Modifica la frequenza dei backup in base alla frequenza delle modifiche significative ai tuoi cluster.
Prima di iniziare, assicurati che il cluster funzioni correttamente, con credenziali e connettività SSH funzionanti per tutti i nodi. Lo scopo del processo di backup è acquisire il cluster in uno stato noto buono in modo da poter ripristinare il funzionamento in caso di errore catastrofico.
Per eseguire il backup di un cluster:
Esegui il comando seguente per controllare il tuo cluster:
gkectl diagnose cluster --cluster-name CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster di cui vuoi eseguire il backup.
ADMIN_KUBECONFIG: il percorso del file kubeconfig per il cluster di amministrazione.
Esegui il comando applicabile per eseguire il backup del cluster:
Cluster di amministrazione
gkectl backup admin --kubeconfig ADMIN_KUBECONFIG
Cluster utente
gkectl backup cluster --cluster-name CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Per impostazione predefinita, il file tar di backup viene salvato nella directorygkectl-workspace/backups
sulla workstation di amministrazione. Il file tar si chiama
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
di esecuzione del backup. Ad esempio, se il nome del cluster è testuser
, il file di backup avrà un nome simile a 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.
Il file di backup può essere caricato anche su vCenter Server, se la seguente sezione è configurata nel file di configurazione del cluster di amministrazione: clusterBackup:
datastore: DATASTORE
Sostituisci DATASTORE
con il data store in cui vuoi memorizzare il backup. Il datastore deve trovarsi nello stesso data center del cluster amministrativo. I backup si trovano nella directory anthos/CLUSTER_NAME/backup
del datastore specificato.
Ripristinare un cluster
Il ripristino di un cluster da un backup è l'ultima risorsa e deve essere utilizzato solo quando un cluster ha subito un guasto catastrofico e non può essere rimesso in servizio in nessun altro modo. Ad esempio, i dati etcd sono danneggiati o il pod etcd è in un loop di arresto anomalo.
Il file tar di backup contiene credenziali sensibili, tra cui le chiavi dell'account di servizio e la chiave SSH. Per evitare l'esposizione indesiderata dei file, la procedura di ripristino di Google Distributed Cloud utilizza solo file in memoria.
Prima di ripristinare un cluster, assicurati che siano soddisfatte le seguenti condizioni:
- Assicurati che tutte le macchine dei nodi del piano di controllo disponibili per il cluster al momento del backup funzionino correttamente e siano raggiungibili.
- Assicurati che la connettività SSH tra i nodi funzioni con le chiavi SSH utilizzate al momento del backup. Queste chiavi SSH vengono reintegrate durante il processo di recupero.
- 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.
Per ripristinare un cluster:
Esegui il comando applicabile per ripristinare il cluster:
Cluster di amministrazione
gkectl restore admin --backup-file BACKUP_FILE \ --config ADMIN_CONFIG
Sostituisci quanto segue:
BACKUP_FILE
: il percorso e il nome del file di backup che stai utilizzando.ADMIN_CONFIG
: il percorso del file di configurazione del cluster di amministrazione.
Cluster utente
gkectl restore cluster --cluster-name CLUSTER_NAME \ --backup-file BACKUP_FILE \ --kubeconfig ADMIN_KUBECONFIG
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster che stai recuperando.BACKUP_FILE
: il percorso e il 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 nella directory dello spazio di lavoro
gkectl-workspace
.Al termine del ripristino, esegui il seguente comando per verificare che sia andato a buon fine:
gkectl diagnose cluster --cluster-name CLUSTER_NAME \ --kubeconfig GENERATED_KUBECONFIG
Sostituisci
GENERATED_KUBECONFIG
con il file kubeconfig generato.
Risoluzione dei problemi
Se riscontri problemi con la procedura di backup o ripristino, le sezioni riportate di seguito potrebbero aiutarti a risolverli.
Se hai bisogno di ulteriore assistenza, contatta il team dell'assistenza clienti Google Cloud.
Memoria insufficiente durante un backup o un ripristino
Se la workstation in cui esegui il comando gkectl
non ha molta RAM,
la memoria potrebbe non essere sufficiente per eseguire il processo di backup o ripristino. Se necessario, crea e utilizza un disco scratch temporaneo per elaborare le operazioni di backup o ripristino utilizzando il parametro --use-disk
nel comando di backup. Per mantenere invariate le autorizzazioni dei file, questo parametro le modifica, quindi è necessario eseguire il comando come utente root (o utilizzare sudo
).
L'aggiornamento della chiave SSH dopo un backup interrompe il processo di ripristino
Le operazioni relative a SSH durante la procedura di ripristino potrebbero non riuscire se la chiave SSH viene aggiornata dopo l'esecuzione di un backup. In questo caso, la nuova chiave SSH diventa invalida per la procedura di ripristino. Per risolvere il problema, puoi aggiungere temporaneamente nuovamente la chiave SSH originale, quindi eseguire il ripristino. Al termine del processo di ripristino, puoi ruotare la chiave SSH.