Backup per GKE


Backup for GKE è un servizio per il backup e il ripristino di carichi di lavoro in GKE. Questo servizio può essere abilitato come componente aggiuntivo durante la configurazione dei cluster GKE per il deployment. I backup dei carichi di lavoro possono essere utili per il ripristino di emergenza, le pipeline CI/CD, la clonazione dei carichi di lavoro o gli scenari di upgrade. La protezione dei carichi di lavoro può aiutarti a raggiungere obiettivi critici per il business.

Introduzione

Una volta abilitato, il servizio Backup for GKE si integra con l'interfaccia utente GKE, l'interfaccia a riga di comando di Google Cloud e 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 descrizioni delle risorse Kubernetes estratte dal server API del cluster in fase di backup, che acquisisce lo stato del cluster.
  • Backup dei volumi: un insieme di volumi che corrispondono alle risorse PersistentVolumeClaim presenti nel backup della configurazione.

Puoi scegliere i carichi di lavoro di cui eseguire il backup o il ripristino oppure puoi eseguire il backup o ripristinare 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 al ripristino dei 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. Una volta create le risorse, il ripristino della funzionalità del carico di lavoro è soggetto al processo di riconciliazione dei cluster (ad esempio, i pod vengono pianificati sui nodi e i pod vengono avviati su tali nodi). Durante il ripristino, puoi facoltativamente applicare le regole di sostituzione utilizzate per abbinare un insieme di risorse al valore attuale di un nuovo attributo.

La combinazione di backup e ripristino selettivi con le sostituzioni è progettata per consentire e supportare molti scenari di backup e ripristino diversi, ad esempio:

  • Effettua il backup di tutti i carichi di lavoro in un cluster e ripristinali in un cluster separato per il ripristino di emergenza.
  • Effettua il backup di tutti i carichi di lavoro, ma esegui il rollback selettivamente a un singolo carico di lavoro nel cluster di origine.
  • Effettua il backup delle risorse in uno spazio dei nomi e clonale in un altro spazio dei nomi.
  • Eseguire la migrazione o clonare un carico di lavoro da un cluster a un altro.
  • Cambia i parametri di archiviazione per un carico di lavoro (ad esempio, sposta il carico di lavoro da un disco permanente a livello di zona a un disco permanente a livello di area geografica).

Prima di poter eseguire il backup o il ripristino di un carico di lavoro, devi creare un cluster di destinazione con il servizio Backup for GKE abilitato.

microservizi

Backup for GKE è costituito da due componenti principali:

  • Un servizio eseguito in Google Cloud e che supporta un'API REST basata su risorse. Questo servizio funge da piano di controllo per Backup for GKE. Il servizio include elementi dell'interfaccia utente di Google Cloud Console che interagiscono con questa API.
  • Un agente 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 for GKE.

Il seguente diagramma mostra la relazione tra i diversi componenti di Backup for GKE:

Architettura di Backup for GKE

Panoramica del servizio

Il servizio Backup for 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 delle risorse. Backup for GKE gestisce un database di queste risorse specifiche dell'applicazione e i metodi dell'API Service corrispondono principalmente a creare, leggere, aggiornare o eliminare operazioni.

Esistono due tipi di risorse attive principali nel modello di risorse cloud:

  • Backup: rappresenta il backup di una determinata porzione di un cluster GKE in un momento specifico. La creazione di una risorsa Backup avvia il processo di backup (alla fine archiviando copie delle risorse Kubernetes di destinazione e creando snapshot dei volumi del disco permanente di destinazione). Se elimini un elemento Backup, vengono eliminati 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 semplicemente il record del ripristino dal database.

Backup for GKE include anche due tipi di risorse di configurazione e controllo:

  • BackupPlan: una risorsa principale 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 l'area geografica in cui sono archiviati gli elementi 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 sostituzione.

Panoramica dell'agente

L'agente Backup for GKE viene sottoposto a deployment e viene eseguito in ogni cluster GKE che configuri per essere sottoposto a backup dal servizio Backup for GKE. L'agente è responsabile dell'esecuzione delle attività di backup e ripristino, ad esempio:

  • Backup:

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

    • Orchestrare il processo di ripristino.
    • Recupero dell'archivio delle risorse Kubernetes dall'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.

L'agente è pacchettizzato come carico di lavoro Kubernetes containerizzato e viene eseguito in un account di servizio dedicato in uno spazio dei nomi dedicato in ogni cluster.

Gli amministratori non interagiscono con l'agente, in quanto l'agente è basato su risorse Kubernetes personalizzate (BackupJob e RestoreJob) create automaticamente nel cluster dal servizio Backup for GKE in risposta alla creazione delle 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 for GKE e offrono opzioni più dettagliate per definire l'ambito di backup e ripristino.

Elementi di cui non è stato eseguito il 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:

  • Informazioni sulla configurazione del cluster GKE, come la configurazione dei nodi, i pool di nodi, le dimensioni iniziali del cluster o le 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 viene fatto riferimento nella descrizione di un carico di lavoro in un backup viene rimossa dal repository di immagini, il ripristino successivo della configurazione non consentirà il ripristino del carico di lavoro.
  • Informazioni di configurazione o stato dei servizi esterni al cluster, ad esempio Cloud SQL o bilanciatori del carico esterni.

Passaggi successivi