Personnaliser les opérations de sauvegarde et de restauration pour une application
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page explique comment utiliser les ressources ProtectedApplication pour personnaliser le comportement des sauvegardes et des restaurations dans Google Distributed Cloud (GDC) air-gapped.
Les étapes décrites sur cette page sont facultatives et ne sont pas nécessaires pour configurer correctement la sauvegarde et la restauration de vos charges de travail. Les ressources ProtectedApplication sont des ressources Kubernetes facultatives dans les espaces de noms qui personnalisent la sauvegarde et la restauration des applications avec état individuelles. Sans ressources ProtectedApplication, les restrictions suivantes s'appliquent :
Vous limitez la précision du champ d'application de la sauvegarde et de la restauration au niveau de l'espace de noms.
Aucune opération de vidage ni de mise au repos n'est effectuée sur les charges de travail lors de l'exécution de la sauvegarde.Par conséquent, les machines virtuelles comportant plusieurs disques peuvent ne pas être cohérentes en cas de plantage après la restauration.
Les ressources ProtectedApplication sont des ressources d'espace de noms Kubernetes facultatives utilisées pour personnaliser la sauvegarde et la restauration des applications avec état individuelles.
La ressource ProtectedApplication définit les ressources Kubernetes qui appartiennent à une instance d'application. Vous pouvez configurer manuellement une orchestration spécialisée à l'aide de la commande kubectl pour créer une sauvegarde et une restauration de ces applications dans les scénarios suivants :
Pour identifier un ensemble de ressources dans un espace de noms pouvant être sauvegardées ou restaurées indépendamment des autres ressources de cet espace de noms. Un ProtectedApplication est l'entité d'espace de noms la plus précise que vous pouvez identifier pour un champ d'application de sauvegarde ou de restauration.
Pour fournir une orchestration de sauvegarde spécialisée chaque fois que ProtectedApplication relève du champ d'application d'une sauvegarde. En particulier, si le ProtectedApplication contient des ressources PersistentVolumeClaim (PVC) directement ou via un modèle à partir d'un StatefulSet, vous pouvez exécuter des hooks avant et après la sauvegarde des volumes. Les hooks sont des commandes qui s'exécutent dans les conteneurs d'application. Ces hooks sont souvent utilisés pour les opérations de vidage, de suspension ou de reprise, et fournissent une sauvegarde cohérente au niveau de l'application.
Avant de commencer
Pour utiliser les ressources ProtectedApplication, vous devez disposer des éléments suivants :
Vous devez définir la ressource ProtectedApplication avant de créer un plan de sauvegarde. Pour en savoir plus, consultez Planifier un ensemble de sauvegardes.
Rôle d'identité et d'accès nécessaire :
Pour les utilisateurs administrateurs de plate-forme :
Administrateur de sauvegarde de cluster d'utilisateur : gère les ressources de sauvegarde telles que les plans de sauvegarde et de restauration dans les clusters d'utilisateur. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de la sauvegarde du cluster utilisateur (user-cluster-backup-admin).
Pour les utilisateurs Application Operator (AO) :
Backup Creator : crée des sauvegardes manuelles et les restaure. Demandez à l'administrateur IAM du projet de vous accorder le rôle Créateur de sauvegardes (backup-creator).
Voici un exemple de spécification Deployment avec une ressource ProtectedApplication qui sauvegarde toutes les ressources associées à l'application pendant la sauvegarde et restaure toutes les ressources pendant la restauration :
Définit comment identifier les ressources appartenant à l'application protégée :
type: Spécifiez l'une des valeurs suivantes :
ApplicationName : sauvegarde une application sig-apps dans le même espace de noms.
Selector : sauvegarde les ressources qui correspondent à un sélecteur donné dans le même espace de noms.
applicationName : si type est défini sur ApplicationName, spécifie le nom de l'application sig-apps dans le même espace de noms.
selector : si type est défini sur Selector, spécifie le sélecteur de libellés pour sélectionner les ressources dans le même espace de noms.
components
Liste des composants de l'application protégée, tels que les déploiements ou les ensembles avec état :
name : nom unique du composant.
resourceKind : choisissez entre Deployment et StatefulSet.
resourceNames : liste des noms identifiant le resourceKind dans l'espace de noms.
strategy : informations supplémentaires sur la sauvegarde ou la restauration de ce composant. Pour en savoir plus, consultez Stratégies d'application protégée.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003e\u003ccode\u003eProtectedApplication\u003c/code\u003e resources are optional Kubernetes resources used to customize the backup and restore process for individual stateful applications in Google Distributed Cloud (GDC) air-gapped.\u003c/p\u003e\n"],["\u003cp\u003eUsing \u003ccode\u003eProtectedApplication\u003c/code\u003e allows for fine-grained control over backup and restore scope at the application level, enabling independent backup and restore of specific sets of resources within a namespace.\u003c/p\u003e\n"],["\u003cp\u003eThese resources can facilitate specialized backup orchestration, including running hooks for flush and quiesce operations, leading to more application-consistent backups, especially for workloads with \u003ccode\u003ePersistentVolumeClaim\u003c/code\u003e (PVC) resources.\u003c/p\u003e\n"],["\u003cp\u003eTo utilize \u003ccode\u003eProtectedApplication\u003c/code\u003e, it must be defined before the creation of a backup plan, and users must have the necessary identity and access role permissions, such as User Cluster Backup Admin or Backup Creator.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eProtectedApplication\u003c/code\u003e resources use a \u003ccode\u003eresourceSelection\u003c/code\u003e field to identify the application resource, allowing it to use an \u003ccode\u003eApplicationName\u003c/code\u003e or \u003ccode\u003eSelector\u003c/code\u003e, additionally it has a \u003ccode\u003ecomponents\u003c/code\u003e field that allows to customize the backup process.\u003c/p\u003e\n"]]],[],null,["# Customize backup and restore for an application\n\nThis page describes how to use `ProtectedApplication` resources to customize the behavior of backup and restores in Google Distributed Cloud (GDC) air-gapped.\n\nThe steps described on this page are optional and are not required to successfully configure backup and restoration for your workloads. `ProtectedApplication` resources are optional Kubernetes resources in namespaces that customize the backup and restore of individual stateful applications. Without `ProtectedApplication` resources, the following restrictions apply:\n\n- You restrict the backup and restore scope granularity to the namespace level.\n- No flush and quiesce operations occur on workloads during backup execution.This might result in virtual machines with multiple disks not being crash-consistent after restoration.\n\n`ProtectedApplication` resources are optional Kubernetes namespace resources\nused to customize the backup and restore of individual stateful applications.\nThe `ProtectedApplication` resource defines which Kubernetes resources belong to\nan application instance. You can manually set up a specialized orchestration\nusing the `kubectl` command to create a backup and restore of those applications in the following\nscenarios:\n\n- To identify a set of resources in a namespace that might be backed up or restored independently of the other resources in that namespace. A `ProtectedApplication` is the most fine-grained namespace entity that you can identify for a backup or restore scope.\n- To provide specialized backup orchestration whenever the `ProtectedApplication` falls within the scope of a backup. In particular, if the `ProtectedApplication` contains `PersistentVolumeClaim` (PVC) resources either directly or through a template from a `StatefulSet`, you can run *hooks* before and after backing up the volumes. Hooks are commands that run in application containers. These hooks are often used for flush, quiesce, or unquiesce operations, and provide an application-consistent backup.\n\nBefore you begin\n----------------\n\nTo use `ProtectedApplication` resources, you must have the following:\n\n- You must define the `ProtectedApplication` resource before creating a backup plan. For more information, see [Plan a set of backups](/distributed-cloud/hosted/docs/latest/gdch/platform-application/pa-ao-operations/cluster-backup/plan-backups).\n- The necessary identity and access role:\n\n - For Platform Administrator (PA) users:\n - User Cluster Backup Admin: manages backup resources such as backup and restore plans in user clusters. Ask your Organization IAM Admin to grant you the User Cluster Backup Admin (`user-cluster-backup-admin`) role.\n - For Application Operator (AO) users:\n - Backup Creator: creates manual backups and restores. Ask your Project IAM Admin to grant you the Backup Creator (`backup-creator`) role.\n - For more information, see [Role definitions](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/iam/role-definitions).\n\nDeploy protected application resources\n--------------------------------------\n\nHere is an example of a `Deployment` specification with a `ProtectedApplication` resource that backs up\nall of the resources associated with the application during backup, and restores\nall resources during the restore: \n\n apiVersion: v1\n kind: Namespace\n metadata:\n name: \"applications\"\n ---\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: protected-application-deployment\n namespace: applications\n labels:\n app: protected\n spec:\n selector:\n matchLabels:\n app: nginx\n replicas: 2\n template:\n metadata:\n labels:\n app: nginx\n spec:\n containers:\n - name: nginx\n image: nginx:1.14.2\n ports:\n - containerPort: 80\n ---\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: unprotected-application-deployment\n namespace: applications\n labels:\n app: unprotected\n spec:\n selector:\n matchLabels:\n app: nginx\n replicas: 2\n template:\n metadata:\n labels:\n app: nginx\n spec:\n containers:\n - name: nginx\n image: nginx:1.14.2\n ports:\n - containerPort: 80\n ---\n\n apiVersion: gkebackup.gke.io/v1\n kind: ProtectedApplication\n metadata:\n name: protected-application-test\n namespace: applications\n spec:\n applicationName: protectedApplication\n resourceSelection:\n type: Selector\n selector:\n matchLabels:\n app: protected\n components:\n - name: protect-application-deployment\n resourceKind: Deployment\n resourceNames:\n - protected-application-deployment\n strategy:\n type: BackupAllRestoreAll\n\nSpecify the `ProtectedApplication` in the list of\n`selectedApplications` in the `backupScope`. For example: \n\n apiVersion: backup.gdc.goog/v1\n kind: BackupPlan\n metadata:\n name: protected-application-backupplan-test\n namespace: applications\n spec:\n clusterName: \"cluster-sample\"\n backupSchedule:\n cronSchedule: \"*/30 * * * *\"\n paused: true\n backupConfig:\n backupScope:\n selectedApplications:\n namespacedNames:\n - name: protected-application-test\n namespace: applications\n backupRepository: \"backup-repository\"\n retentionPolicy:\n backupDeleteLockDays: 10\n backupRetainDays: 10\n\nThis example includes the following values:\n\nWhat's next\n-----------\n\n- To select a protected application strategy, see [Protected application strategies](/distributed-cloud/hosted/docs/latest/gdch/platform-application/pa-ao-operations/protected-application-strategies)."]]