En esta página se describe cómo usar los recursos de ProtectedApplication
para personalizar el comportamiento de las copias de seguridad y las restauraciones en Google Distributed Cloud (GDC) air-gapped.
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 de Kubernetes opcionales en espacios de nombres que personalizan la copia de seguridad y la restauración de aplicaciones con estado individuales. Si no tienes recursos de ProtectedApplication
, se aplican las siguientes restricciones:
- Restringes la granularidad del ámbito de la copia de seguridad y la restauración al nivel del espacio de nombres.
- No se realizan operaciones de vaciado ni de quiescencia en las cargas de trabajo durante la ejecución de la copia de seguridad.Esto puede provocar que las máquinas virtuales con varios discos no sean coherentes tras un fallo después de la restauración.
Los recursos ProtectedApplication
son recursos de espacio de nombres de Kubernetes opcionales que se usan para personalizar la copia de seguridad y la restauración de aplicaciones con estado individuales.
El recurso ProtectedApplication
define qué recursos de Kubernetes pertenecen a una instancia de aplicación. Puedes configurar manualmente una orquestación especializada
con el comando kubectl
para crear una copia de seguridad y restaurar esas aplicaciones en los siguientes
casos:
- Para identificar un conjunto de recursos de un espacio de nombres que se pueden crear como copia de seguridad o restaurar de forma independiente a los demás recursos de ese espacio de nombres. Un
ProtectedApplication
es la entidad de espacio de nombres más detallada que puedes identificar para un ámbito de copia de seguridad o restauración. - Para proporcionar una orquestación de copias de seguridad especializada siempre que el
ProtectedApplication
esté dentro del ámbito de una copia de seguridad. En concreto, siProtectedApplication
contiene recursosPersistentVolumeClaim
(PVC) directamente o a través de una plantilla de unStatefulSet
, 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 contenedores de aplicaciones. Estos ganchos se suelen usar para operaciones de vaciado, quiescencia o no quiescencia, y proporcionan una copia de seguridad coherente con la aplicación.
Antes de empezar
Para usar los recursos de ProtectedApplication
, debes tener lo siguiente:
- Debes definir el recurso
ProtectedApplication
antes de crear un plan de copia de seguridad. Para obtener más información, consulta Planificar un conjunto de copias de seguridad. El rol de identidad y acceso necesario:
- Para usuarios administradores de la plataforma:
- Administrador de copias de seguridad de clústeres de usuarios: gestiona recursos de copia de seguridad, como planes de copia de seguridad y restauración, en clústeres de usuarios. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de copias de seguridad de clústeres de usuarios (
user-cluster-backup-admin
).
- Administrador de copias de seguridad de clústeres de usuarios: gestiona recursos de copia de seguridad, como planes de copia de seguridad y restauración, en clústeres de usuarios. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de copias de seguridad de clústeres de usuarios (
- Para usuarios con el rol Operador de aplicaciones (AO):
- Creador de copias de seguridad: crea copias de seguridad manuales y las restaura. Pídele al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Creador de copias de seguridad (
backup-creator
).
- Creador de copias de seguridad: crea copias de seguridad manuales y las restaura. Pídele al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Creador de copias de seguridad (
- Para obtener más información, consulta Definiciones de roles.
- Para usuarios administradores de la plataforma:
Desplegar recursos de aplicaciones protegidos
A continuación, se muestra un ejemplo de una especificación de Deployment
con un recurso ProtectedApplication
que crea una copia de seguridad de todos los recursos asociados a la aplicación durante la copia de seguridad y restaura todos los recursos durante la restauración:
apiVersion: v1
kind: Namespace
metadata:
name: "applications"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: applications
labels:
app: protected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: unprotected-application-deployment
namespace: applications
labels:
app: unprotected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: gkebackup.gke.io/v1
kind: ProtectedApplication
metadata:
name: protected-application-test
namespace: applications
spec:
applicationName: protectedApplication
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: protect-application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Especifica el ProtectedApplication
en la lista de selectedApplications
en el backupScope
. Por ejemplo:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: protected-application-backupplan-test
namespace: applications
spec:
clusterName: "cluster-sample"
backupSchedule:
cronSchedule: "*/30 * * * *"
paused: true
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: protected-application-test
namespace: applications
backupRepository: "backup-repository"
retentionPolicy:
backupDeleteLockDays: 10
backupRetainDays: 10
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:
|
components |
Lista de componentes de la aplicación protegida, como los despliegues o los conjuntos con estado:
|
Siguientes pasos
- Para seleccionar una estrategia de aplicación protegida, consulta Estrategias de aplicación protegida.