Backup per GKE è un servizio per il backup e il ripristino dei carichi di lavoro nei cluster GKE. È composta da due componenti:
- Un'API Google Cloud che funge da control plane per il servizio.
- Un componente aggiuntivo GKE (l'agente Backup per GKE) che deve essere abilitato in ogni cluster per cui vuoi eseguire operazioni di backup e ripristino.
I backup dei carichi di lavoro possono essere utili per il ripristino di emergenza, le pipeline CI/CD, la clonazione di carichi di lavoro o gli scenari di upgrade. La protezione dei tuoi carichi di lavoro può aiutarti a raggiungere obiettivi business-critical Recovery Point Objective.
Introduzione
Una volta abilitato, il servizio Backup per GKE si integra con la UI di GKE, con la Google Cloud CLI e con le API REST, fornendo flussi di lavoro coerenti per lo sviluppo e le operazioni. In un backup vengono acquisite due forme di dati:
- Backup della configurazione: un insieme di manifest delle risorse Kubernetes estratti dal server API del cluster di cui viene eseguito il backup, che acquisiscono lo stato del cluster.
- Backup dei volumi: un insieme di backup dei volumi che corrispondono alle risorse
PersistentVolumeClaimtrovate nel backup della configurazione.
Puoi scegliere i carichi di lavoro di cui vuoi eseguire il backup o il ripristino oppure puoi eseguire il backup o il ripristino di tutti i carichi di lavoro. Puoi eseguire il backup dei carichi di lavoro da un cluster e ripristinarli in un altro cluster. Puoi pianificare l'esecuzione automatica dei backup, in modo da poter rispondere rapidamente per ripristinare i tuoi workload in caso di incidente.
Backup per GKE supporta il backup o il ripristino di un cluster tra progetti. Puoi anche creare piani di backup per un cluster GKE nello stesso progetto del cluster. Allo stesso modo, puoi creare piani di ripristino per un cluster GKE nello stesso progetto del cluster.
Il ripristino di un workload comporta la ricreazione delle risorse Kubernetes nel cluster di destinazione. Una volta create le risorse, il ripristino delle funzionalità del workload è soggetto al processo di riconciliazione del cluster (ad esempio, i pod vengono pianificati sui nodi e poi avviati su questi nodi). Durante il ripristino, puoi applicare facoltativamente regole di trasformazione, che vengono utilizzate per corrispondere a un insieme di risorse e sostituire il valore corrente di un attributo di queste risorse con un nuovo valore.
La combinazione di backup e ripristino selettivi con sostituzioni è progettata per abilitare e supportare molti scenari di backup e ripristino diversi, ad esempio:
- Esegui il backup di tutti i carichi di lavoro in un cluster e ripristinali in un cluster separato per il disaster recovery.
- Esegui il backup di tutti i carichi di lavoro, ma esegui il rollback selettivo di un singolo carico di lavoro nel cluster di origine.
- Esegui il backup delle risorse in uno spazio dei nomi e clonale in un altro spazio dei nomi.
- Esegui la migrazione o clona un carico di lavoro da un cluster a un altro.
- Modifica i parametri di archiviazione per un workload (ad esempio, sposta il workload da un disco permanente zonale a un disco permanente regionale).
Prima di poter eseguire il backup o il ripristino di qualsiasi carico di lavoro, devi creare un cluster di destinazione con il servizio Backup per GKE abilitato.
Architettura
Backup per GKE è costituito da due componenti principali:
- Un servizio che viene eseguito in Google Cloud e supporta un'API REST basata sulle risorse. Questo servizio funge da control plane per Backup per GKE. Il servizio include Google Cloud elementi della UI della console che interagiscono con questa API.
- Un agente che viene eseguito in ogni cluster in cui vengono eseguiti backup o ripristini. L'agente esegue le operazioni di backup e ripristino in questi cluster interagendo con l'API Backup per GKE.
Il seguente diagramma mostra la relazione tra i diversi componenti di Backup per GKE:
Panoramica del servizio
Il servizio Backup for GKE fornisce un endpoint API con cui i client possono interagire. L'API Backup per GKE, come la maggior parte delle API, opera su risorse cloud specifiche dell'applicazione in una gerarchia di risorse. Google Cloud Backup per GKE gestisce un database di queste risorse specifiche dell'applicazione e i metodi API del servizio corrispondono principalmente alle operazioni di creazione, lettura, aggiornamento o eliminazione su queste risorse.
Nel modello di risorse cloud esistono due tipi principali di risorse attive:
Backup: rappresenta il backup di una parte specifica di un cluster GKE in un momento specifico. La creazione di una risorsaBackupavvia il processo di backup (alla fine memorizza copie delle risorse Kubernetes di destinazione e crea snapshot dei volumi dei dischi permanenti di destinazione). L'eliminazione di unBackupcomporta l'eliminazione di questi elementi archiviati.Restore: rappresenta il ripristino di una parte selezionata di unBackupspecifico in un cluster GKE. La creazione di una risorsaRestoreavvia la procedura di ripristino. L'eliminazione di unRestorenon ha effetti collaterali e rimuove il record del ripristino dal database.
Backup per GKE include anche due tipi di risorse di configurazione e controllo:
BackupPlan: una risorsa padre per le risorseBackupche rappresentano una catena di backup. Questa risorsa contiene una configurazione di backup che include il cluster di origine, la selezione dei workload di cui eseguire il backup e la regione in cui vengono archiviati gli artefattiBackupprodotti in base a questo piano. Questa regione può essere una qualsiasi delle località supportate. Per i backup archiviati in una regione diversa da quella del cluster GKE, vengono applicati costi per il trasferimento di dati di rete in uscita. Per maggiori informazioni, consulta i prezzi di Backup per GKE.RestorePlan: fornisce un modello di ripristino riutilizzabile. Questa risorsa contiene una configurazione di ripristino che include il cluster di destinazione in cui vuoi ripristinare il backup, il piano di backup di origine, l'ambito del ripristino, la gestione dei conflitti e le regole di trasformazione. Prima di creare un piano di ripristino, devi creare il cluster di destinazione. Backup per GKE non crea il cluster di destinazione durante un ripristino.
Panoramica dell'agente
L'agente Backup per GKE viene deployment ed eseguito in ogni cluster GKE che configuri per il backup dal servizio Backup per GKE. L'agente è responsabile dell'esecuzione delle attività di backup e ripristino, ad esempio:
Backup:
- Orchestrazione della procedura di backup.
- Recupero delle risorse dal server API Kubernetes, serializzazione in un archivio e archiviazione dell'archivio.
- Creazione di backup dei volumi sottostanti associati a
PersistentVolumeClaims.
Ripristina:
- Orchestrazione della procedura di ripristino.
- Recupero dell'archivio delle risorse Kubernetes dallo spazio di archiviazione, estrazione delle risorse selezionate, applicazione delle modifiche appropriate a queste risorse e creazione nel cluster di destinazione.
- Creazione di volumi e collegamento alla configurazione Kubernetes del cluster di destinazione.
Gli amministratori non interagiscono con l'agente, in quanto è guidato da risorse Kubernetes personalizzate (BackupJob e RestoreJob) create automaticamente nel cluster dal servizio Backup per GKE in risposta alla creazione di risorse cloud di backup e ripristino. Tuttavia, gli amministratori possono influenzare l'orchestrazione dei backup
creando risorse Kubernetes ProtectedApplication
facoltative nel cluster. Queste risorse ProtectedApplication sono
uniche per Backup per GKE e forniscono opzioni più granulari per definire
l'ambito di backup e ripristino.
Consulta Ritiro dell'agente di anteprima per informazioni sulle differenze tra le versioni di anteprima e GA dell'agente.
Ridondanza a livello di zona
La sezione seguente descrive la ridondanza di zona per Backup per GKE.
- Il backup degli artefatti GKE viene replicato in più zone all'interno di una regione, garantendo il funzionamento continuo anche se una zona subisce un'interruzione.
- Backup per GKE come servizio viene replicato in almeno tre zone all'interno di ogni regione, fornendo ridondanza e resilienza aggiuntive.
- Backup per GKE non prende decisioni a livello di zona durante l'archiviazione dei dati. Backup per GKE si basa sulle strutture regionali sottostanti per gestire la replica a livello di zona.
Elementi di cui non viene eseguito il backup
Puoi eseguire il backup solo delle risorse Kubernetes e dei volumi permanenti sottostanti con Backup per GKE. Backup per GKE non esegue il backup di quanto segue:
- Informazioni di configurazione del cluster GKE, ad esempio configurazione dei nodi, node pool, dimensione iniziale del cluster o funzionalità abilitate.
- Immagini container a cui fa riferimento un backup. Viene eseguito il backup solo delle risorse Kubernetes che descrivono il workload e fanno riferimento alle immagini container. Se un'immagine a cui fa riferimento un manifest del workload in un backup viene rimossa dal repository di immagini, un successivo ripristino di questa configurazione non ripristinerà correttamente il workload.
- Informazioni di configurazione o stato dei servizi esterni al cluster, ad esempio Cloud SQL o bilanciatori del carico esterni.
- Viene eseguito il backup solo dei volumi di tipo disco permanente. Altri tipi di volumi, come Filestore NFS o Google Cloud NetApp Volumes, non vengono sottoposti a backup. Tuttavia, Backup per GKE può essere utilizzato per fornire soluzioni per i carichi di lavoro supportati da volumi Filestore. Per maggiori informazioni, consulta Gestire i volumi Filestore con Backup per GKE.
Passaggi successivi
- Scopri di più sull'installazione di Backup per GKE.
- Scopri di più sulla pianificazione di una serie di backup.