Backup per GKE


Backup per GKE è un servizio per il backup e il ripristino dei carichi di lavoro nei cluster GKE. Ha due componenti:

  • Un'API Google Cloud che funge da piano di controllo 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 scenari di ripristino di emergenza, pipeline CI/CD, clonazione di carichi di lavoro o 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, Google Cloud CLI e le API REST, fornendo flussi di lavoro coerenti per lo sviluppo e le operazioni. In un backup vengono acquisiti due tipi di dati:

  • Backup della configurazione: un insieme di manifest delle risorse Kubernetes estratto dal server API del cluster in fase di backup, che acquisisce lo stato del cluster.
  • Backup del volume: un insieme di backup del volume che corrisponde a PersistentVolumeClaim risorse trovate nel backup della configurazione.

Puoi scegliere di quali carichi di lavoro eseguire il backup o il ripristino oppure di 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 i backup in modo che vengano eseguiti automaticamente, in modo da poter rispondere rapidamente per recuperare i carichi di lavoro in caso di incidente.

Il ripristino di un carico di lavoro prevede la ricreazione di risorse Kubernetes nel cluster di destinazione. Dopo la creazione delle risorse, il ripristino delle funzionalità dei carichi di lavoro è soggetto al processo di riconciliazione del cluster. Ad esempio, i pod vengono pianificati sui nodi e poi i pod vengono avviati su quei nodi. Durante il ripristino, puoi facoltativamente applicare regole di trasformazione, che vengono utilizzate per trovare corrispondenze per un insieme di risorse e sostituire il valore attuale di un attributo su 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 ripristino di emergenza.
  • Esegui il backup di tutti i carichi di lavoro, ma eseguendo 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 la clonazione di un carico di lavoro da un cluster a un altro.
  • Modificare i parametri di archiviazione per un carico di lavoro (ad esempio, spostare il carico di lavoro da un disco permanente a livello di zona a un disco permanente a livello di regione).

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 che supporta un'API REST basata sulle risorse. Questo servizio funge da piano di controllo per Backup per GKE. Il servizio include elementi UI della console Google Cloud che interagiscono con questa API.
  • Un agente che viene eseguito in ogni cluster in cui vengono eseguiti i backup o i 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:

Architettura di Backup per GKE

Panoramica del servizio

Il servizio Backup per GKE fornisce un endpoint API con cui i client possono interagire. L'API Backup per GKE, come la maggior parte delle API Google Cloud, opera rispetto a risorse cloud specifiche dell'applicazione in una gerarchia delle risorse. Backup per GKE gestisce un database di queste risorse specifiche dell'applicazione e i metodi dell'API di servizio corrispondono principalmente alle operazioni di creazione, lettura, aggiornamento o eliminazione di queste risorse.

Nel modello di risorse cloud esistono due tipi di risorse attive principali:

  • Backup: rappresenta il backup di una determinata parte di un cluster GKE in un momento specifico. La creazione di una risorsa Backup avvia il processo di backup (alla fine, l'archiviazione di copie delle risorse Kubernetes di destinazione e la creazione di snapshot dei volumi del disco permanente di destinazione). L'eliminazione di un elemento Backup comporta l'eliminazione di questi artefatti archiviati.
  • Restore: rappresenta il ripristino di una parte selezionata di un Backup specifico in un cluster GKE. La creazione di una risorsa Restore avvia il processo di ripristino. L'eliminazione di un elemento Restore non 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 risorse Backup che rappresentano una catena di backup. Questa risorsa contiene una configurazione di backup che include il cluster di origine, la selezione dei carichi di lavoro di cui eseguire il backup e la regione in cui sono archiviati gli artefatti Backup prodotti in questo piano.
  • 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.

Panoramica dell'agente

Viene eseguito il deployment dell'agente Backup per GKE, che viene eseguito in ogni cluster GKE che configuri per il backup da parte del servizio Backup per GKE. L'agente è responsabile dell'esecuzione delle attività di backup e ripristino, ad esempio:

  • Backup:

    • Orchestrare il processo di backup.
    • Recupero di risorse dal server API Kubernetes, serializzazione in un archivio e archiviazione.
    • Creazione di backup dei volumi sottostanti associati a PersistentVolumeClaims.
  • Ripristina:

    • Orchestrazione del processo di ripristino.
    • Recupero dell'archivio di risorse Kubernetes dallo spazio di archiviazione, estrazione delle risorse selezionate, applicazione delle modifiche appropriate a queste risorse e creazione nel cluster di destinazione.
    • Creare volumi e collegarli alla configurazione Kubernetes del cluster di destinazione.

Gli amministratori non interagiscono con l'agente, poiché l'agente è gestito 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 specifiche di Backup per GKE e offrono opzioni più granulari per la definizione dell'ambito di backup e ripristino.

Consulta Ritiro dell'agente di anteprima per informazioni sulle differenze tra la versione di anteprima e la versione GA dell'agente.

Elementi non sottoposti a backup

Con Backup per GKE puoi eseguire il backup solo delle risorse Kubernetes e dei volumi permanenti sottostanti. Backup per GKE non esegue il backup di quanto segue:

  • Informazioni sulla configurazione dei cluster GKE, come configurazione dei nodi, pool di nodi, 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 carico di lavoro e fanno riferimento alle immagini container. Se un'immagine a cui fa riferimento il manifest di un carico di lavoro in un backup viene rimossa dal relativo repository di immagini, un successivo ripristino della configurazione non ripristinerà correttamente il carico di lavoro.
  • Informazioni sulla configurazione o sullo 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. Non viene eseguito il backup di altri tipi di volumi, come Filestore NFS o Google Cloud NetApp Volumes.

Passaggi successivi