Sauvegarde pour GKE


Sauvegarde pour GKE est un service de sauvegarde et de restauration de charges de travail sur les clusters GKE. Ce service comprend deux composants :

  • Une API Google Cloud qui sert de plan de contrôle pour le service.
  • Un module complémentaire GKE (l'agent Sauvegarde pour GKE) qui doit être activé sur chaque cluster pour lequel vous souhaitez effectuer des opérations de sauvegarde et de restauration.

Les sauvegardes de vos charges de travail peuvent être utiles pour la reprise après sinistre, les pipelines CI/CD, le clonage de charges de travail ou les scénarios de mise à niveau. La protection de vos charges de travail peut vous aider à atteindre des objectifs de point de récupération critiques.

Introduction

Une fois activé, le service Sauvegarde pour GKE s'intègre à l'interface utilisateur GKE, à Google Cloud CLI et aux API REST, fournissant ainsi des workflows cohérents pour le développement et les opérations. Deux formes de données sont capturées dans une sauvegarde :

  • Sauvegarde de configurations : ensemble de fichiers manifestes de ressources Kubernetes extraites du serveur d'API du cluster en cours de sauvegarde, capturant l'état du cluster.
  • Sauvegardes de volumes : ensemble de sauvegardes de volume correspondant aux ressources PersistentVolumeClaim trouvées dans la sauvegarde de configuration.

Vous pouvez choisir les charges de travail que vous souhaitez sauvegarder ou restaurer, ou bien sauvegarder ou restaurer toutes les charges de travail. Vous pouvez sauvegarder les charges de travail d'un cluster et les restaurer dans un autre cluster. Vous pouvez programmer l'exécution automatique de vos sauvegardes, ce qui vous permet de récupérer rapidement vos charges de travail en cas d'incident.

La restauration d'une charge de travail implique la recréation de ressources Kubernetes dans le cluster cible. Une fois les ressources créées, la restauration des fonctionnalités de la charge de travail est soumise au processus de rapprochement des clusters (par exemple, les pods sont programmés sur des nœuds, puis les pods sont démarrés sur ces nœuds). Lors de la restauration, vous pouvez éventuellement appliquer des règles de substitution, qui visent à faire correspondre un ensemble de ressources et à remplacer la valeur actuelle d'un attribut de ces ressources par une nouvelle valeur.

La combinaison sélective de la sauvegarde et de la restauration avec des substitutions est conçue pour activer et accepter de nombreux scénarios de sauvegarde et de restauration différents, par exemple :

  • Sauvegarder toutes les charges de travail d'un cluster et les restaurer dans un cluster distinct pour la reprise après sinistre.
  • Sauvegarder toutes les charges de travail, mais effectuer un rollback sélectif d'une seule charge de travail dans le cluster source.
  • Sauvegarder les ressources dans un espace de noms et clonez-les dans un autre espace de noms.
  • Migrer ou cloner une charge de travail d'un cluster vers un autre.
  • Modifier les paramètres de stockage d'une charge de travail (par exemple, déplacez la charge de travail d'un disque persistant zonal vers un disque persistant régional).

Vous devez créer un cluster cible avec le service Sauvegarde pour GKE activé avant de pouvoir sauvegarder ou restaurer des charges de travail.

Architecture

Sauvegarde pour GKE comprend deux composants principaux :

  • Un service qui s'exécute dans Google Cloud et accepte une API REST basée sur les ressources. Ce service sert de plan de contrôle à Sauvegarde pour GKE. Le service inclut des éléments de l'interface utilisateur de Google Cloud Console qui interagissent avec cette API.
  • Un agent qui s'exécute dans chaque cluster où des sauvegardes ou des restaurations sont effectuées. L'agent exécute les opérations de sauvegarde et de restauration dans ces clusters en interagissant avec l''API Sauvegarde pour GKE.

Le schéma suivant illustre la relation entre les différents composants de Sauvegarde pour GKE :

Architecture de Sauvegarde pour GKE

Présentation générale du service

Le service Sauvegarde pour GKE fournit un point de terminaison d'API avec lequel les clients peuvent interagir. Comme la plupart des API Google Cloud, l'API Sauvegarde pour GKE fonctionne avec les ressources cloud spécifiques à l'application, au sein d'une hiérarchie des ressources. La fonctionnalité Sauvegarde pour GKE gère une base de données de ces ressources spécifiques à l'application. Les méthodes de l'API de service correspondent principalement aux opérations de création, de lecture, de mise à jour ou de suppression de ces ressources.

Il existe deux principaux types de ressources actives dans le modèle de ressource cloud :

  • Backup : représente la sauvegarde d'une partie particulière d'un cluster GKE à un moment donné. La création d'une ressource Backup lance le processus de sauvegarde (qui conduit à terme au stockage des copies des ressources Kubernetes cibles et à la création d'instantanés des volumes de disques persistants cibles). La suppression d'une ressource Backup entraîne la suppression de ces artefacts stockés.
  • Restore : représente la restauration d'une partie sélectionnée d'une sauvegarde Backup spécifique dans un cluster GKE. La création d'une ressource Restore lance le processus de restauration. La suppression d'une restauration Restore n'a aucun effet secondaire et supprime simplement l'enregistrement du magasin de la base de données.

Sauvegarde pour GKE comprend également deux types de ressources de configuration et de contrôle :

  • BackupPlan : ressource parente pour les ressources Backup qui représentent une chaîne de sauvegardes. Cette ressource contient une configuration de sauvegarde incluant le cluster source, la sélection des charges de travail à sauvegarder et la région dans laquelle les artefacts Backup produits dans le cadre de ce plan sont stockés.
  • RestorePlan : fournit un modèle de restauration réutilisable. Cette ressource contient une configuration de restauration incluant le cluster cible dans lequel vous souhaitez restaurer la sauvegarde, le plan de sauvegarde source, le champ d'application de la restauration, des règles de gestion des conflits et de substitution.

Présentation de l'agent

L'agent Sauvegarde pour GKE est déployé et s'exécute dans chaque cluster GKE que vous configurez pour être sauvegardé par le service Sauvegarde pour GKE. L'agent est responsable de l'exécution des activités de sauvegarde et de restauration, par exemple :

  • Sauvegarde :

    • Orchestrer le processus de sauvegarde ;
    • Extraction des ressources du serveur d'API Kubernetes, sérialisation dans une archive et stockage de l'archive ;
    • Créer des sauvegardes de volumes sous-jacents associés à PersistentVolumeClaims.
  • Restauration :

    • Orchestrer le processus de restauration ;
    • Extraire l'archive des ressources Kubernetes de l'espace de stockage, extraire les ressources sélectionnées, appliquer les modifications appropriées à ces ressources et les créer dans le cluster cible ;
    • Créer des volumes et les connecter à la configuration Kubernetes du cluster cible.

Les administrateurs n'interagissent pas avec l'agent, car celui-ci est piloté par des ressources Kubernetes personnalisées (BackupJob et RestoreJob) créées automatiquement dans le cluster par le service Sauvegarde pour GKE en réponse à la création de ressources cloud de sauvegarde et de restauration. Cependant, les administrateurs peuvent influer sur l'orchestration des sauvegardes en créant des ressources Kubernetes ProtectedApplication facultatives dans le cluster. Ces ressources ProtectedApplication sont spécifiques au service Sauvegarde pour GKE et fournissent des options plus précises pour définir le champ d'application de la sauvegarde et de la restauration.

Consultez la section Abandon de l'agent bêta pour plus d'informations sur les différences entre les version bêta et la version DG de l'agent.

Éléments non sauvegardés

Le service Sauvegarde pour GKE permet uniquement de sauvegarder les ressources Kubernetes et les volumes persistants sous-jacents. Le service Sauvegarde pour GKE ne sauvegarde pas les éléments suivants :

  • Les informations de configuration du cluster GKE, telles que la configuration des nœuds, les pools de nœuds, la taille initiale du cluster ou les fonctionnalités activées ;
  • Images de conteneurs référencées par une sauvegarde. Seules les ressources Kubernetes qui décrivent la charge de travail et font référence aux images de conteneurs sont sauvegardées. Si une image référencée par un fichier manifeste de charge de travail dans une sauvegarde est supprimée de son dépôt d'images, une restauration ultérieure de cette configuration ne parviendra pas à restaurer correctement la charge de travail.
  • Les informations de configuration ou état des services en dehors du cluster, tels que Cloud SQL ou les équilibreurs de charge externes.

Étape suivante