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 di GKE (l'agente Backup per GKE) che deve essere abilitato in ogni cluster per il quale vuoi eseguire operazioni di backup e ripristino.

I backup dei carichi di lavoro possono essere utili per ripristino di emergenza, pipeline CI/CD, clonazione di carichi di lavoro o scenari di upgrade. La protezione dei carichi di lavoro può aiutarti a raggiungere obiettivi di Recovery Point critici aziendali.

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 di risorse Kubernetes estratti dal server API del cluster in fase di backup, che acquisiscono lo stato del cluster.
  • Backup di volumi: un insieme di backup di volumi che corrispondono alle risorse PersistentVolumeClaim trovate nel backup di configurazione.

Puoi scegliere per quali carichi di lavoro 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 recuperare i carichi di lavoro in caso di incidente.

Il ripristino di un carico di lavoro comporta la nuova creazione 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 dei cluster (ad esempio, i pod vengono pianificati per i nodi, quindi vengono avviati i pod su questi nodi). Durante il ripristino, puoi facoltativamente applicare regole di trasformazione, che vengono utilizzate per associare un insieme di risorse e sostituire il valore attuale di un attributo di queste risorse con un nuovo valore.

La combinazione di backup selettivo e ripristino 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 esegui selettivamente il rollback 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.
  • Modificare i parametri di archiviazione per un carico di lavoro (ad esempio, spostare il carico di lavoro da un disco permanente 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 su Google Cloud e 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 in esecuzione in ogni cluster in cui vengono eseguiti backup o ripristini. L'agente esegue 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 for GKE, come la maggior parte delle API Google Cloud, opera su risorse cloud specifiche per le applicazioni in una gerarchia di 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 su 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 (fino all'archiviazione di copie delle risorse Kubernetes di destinazione e alla creazione di snapshot dei volumi di dischi permanenti di destinazione). L'eliminazione di un 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 Restore non ha effetti collaterali e rimuove il record del ripristino dal database.

Backup per GKE include inoltre 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 comprende il cluster di origine, la selezione dei carichi di lavoro di cui eseguire il backup e la regione in cui vengono 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 configurato 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 e archiviazione di risorse dal server API Kubernetes, ovvero la serializzazione in un archivio.
    • Creazione di backup dei volumi sottostanti associati a PersistentVolumeClaims.
  • Ripristina:

    • Orchestrare il 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.
    • Creazione di volumi e cablaggio nella configurazione Kubernetes del cluster di destinazione.

Gli amministratori non interagiscono con l'agente poiché quest'ultimo è basato su 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 facoltative ProtectedApplication nel cluster. Queste risorse ProtectedApplication sono specifiche per Backup per GKE e offrono opzioni più granulari per definire l'ambito di backup e ripristino.

Per informazioni sulle differenze tra la versione in anteprima e la versione GA dell'agente, consulta Ritiro dell'agente anteprima.

Elementi non sottoposti a backup

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

  • Informazioni di configurazione del 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 del carico di lavoro in un backup viene rimossa dal repository di immagini, un ripristino successivo di quella configurazione non potrà ripristinare correttamente il carico di lavoro.
  • Informazioni di configurazione o stato dei servizi esterni al cluster, come Cloud SQL o bilanciatori del carico esterni.

Passaggi successivi