Personaliza la creación de una copia de seguridad y el restablecimiento de una aplicación
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta página, se describe cómo usar los recursos de ProtectedApplication para personalizar el comportamiento de las copias de seguridad y los restablecimientos en Google Distributed Cloud (GDC) aislado.
Los pasos que se describen en esta página son opcionales y no son necesarios para configurar correctamente la copia de seguridad y la restauración de tus cargas de trabajo. Los recursos ProtectedApplication son recursos opcionales de Kubernetes en espacios de nombres que personalizan la copia de seguridad y el restablecimiento de aplicaciones con estado individuales. Sin recursos ProtectedApplication, se aplican las siguientes restricciones:
Restringes la granularidad del alcance de la copia de seguridad y el restablecimiento al nivel del espacio de nombres.
No se realizan operaciones de vaciado ni de inactividad en las cargas de trabajo durante la ejecución de la copia de seguridad, lo que puede provocar que las máquinas virtuales con varios discos no sean coherentes ante fallas después del restablecimiento.
Los recursos ProtectedApplication son recursos de espacio de nombres de Kubernetes opcionales que se usan para personalizar la copia de seguridad y el restablecimiento de aplicaciones con estado individuales.
El recurso ProtectedApplication define qué recursos de Kubernetes pertenecen a una instancia de aplicación. Puedes configurar manualmente una organización especializada con el comando kubectl para crear una copia de seguridad y restablecer esas aplicaciones en las siguientes situaciones:
Identificar un conjunto de recursos en un espacio de nombres para el que se pueda crear una copia de seguridad o restablecerse de forma independiente de los otros recursos de ese espacio de nombres Un ProtectedApplication es la entidad de espacio de nombres más detallada que puedes identificar para un alcance de copia de seguridad o restablecimiento.
Proporcionar una organización especializada de la copia de seguridad siempre que ProtectedApplication esté dentro del alcance de una copia de seguridad En particular, si el ProtectedApplication contiene recursos de PersistentVolumeClaim (PVC) directamente o a través de una plantilla de un StatefulSet, puedes ejecutar hooks antes y después de crear una copia de seguridad de los volúmenes. Los hooks son comandos que se ejecutan en los contenedores de la aplicación. Estos hooks se suelen usar para operaciones de vaciado, desactivación o reactivación, y proporcionan una copia de seguridad coherente con la aplicación.
Antes de comenzar
Para usar los recursos ProtectedApplication, debes tener lo siguiente:
Debes definir el recurso ProtectedApplication antes de crear un plan de copias de seguridad. Para obtener más información, consulta Planifica un conjunto de copias de seguridad.
El rol de identidad y acceso necesario:
Para los usuarios administradores de la plataforma (PA):
Administrador de copias de seguridad del clúster de usuario: Administra recursos de copias de seguridad, como planes de copias de seguridad y restablecimiento en clústeres de usuario. Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de copias de seguridad de clústeres de usuarios (user-cluster-backup-admin).
Para los usuarios del operador de la aplicación (AO):
Backup Creator: Crea copias de seguridad y restablecimientos manuales. Pídele al administrador de IAM del proyecto que te otorgue el rol de creador de copias de seguridad (backup-creator).
A continuación, se muestra un ejemplo de una especificación de Deployment con un recurso de ProtectedApplication que crea una copia de seguridad de todos los recursos asociados con la aplicación durante la copia de seguridad y restablece todos los recursos durante la restauración:
En este ejemplo, se incluyen los siguientes valores:
Valor
Descripción
resourceSelection
Define cómo identificar los recursos que pertenecen a la aplicación protegida:
type: Especifica una de las siguientes opciones:
ApplicationName: Crea una copia de seguridad de una aplicación de sig-apps dentro del mismo espacio de nombres.
Selector: Crea una copia de seguridad de los recursos que coinciden con un selector determinado dentro del mismo espacio de nombres.
applicationName: Si type es ApplicationName, especifica el nombre de la aplicación de sig-apps dentro del mismo espacio de nombres.
selector: Si type es Selector, especifica el selector de etiquetas para seleccionar recursos dentro del mismo espacio de nombres.
components
La lista de componentes de la aplicación protegida, como implementaciones o conjuntos con estado:
name: Es el nombre único del componente.
resourceKind: Elige entre Deployment o StatefulSet.
resourceNames: Es la lista de nombres que identifican el resourceKind en el espacio de nombres.
strategy: Detalles adicionales sobre cómo crear una copia de seguridad o restablecer este componente. Para obtener más información, consulta Estrategias de protección de aplicaciones.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]