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 inactividad 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
ProtectedApplicationes 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
ProtectedApplicationesté dentro del ámbito de una copia de seguridad. En concreto, siProtectedApplicationcontiene 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
ProtectedApplicationantes 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. Pide 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. Pide 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: USER_CLUSTER_NS
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: USER_CLUSTER_NS
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: USER_CLUSTER_NS
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_APP_NAME
namespace: USER_CLUSTER_NS
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Haz los cambios siguientes:
USER_CLUSTER_NS: el espacio de nombres del clúster de usuarios en el que reside tu aplicación protegida.PROTECTED_APP_NAME: el nombre de tuProtectedApplication.
En este ejemplo se incluyen los siguientes valores de ProtectedApplication:
| 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:
|
Especifica el ProtectedApplication en la lista de selectedApplications del backupScope. Por ejemplo:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: BACKUP_PLAN
namespace: USER_CLUSTER_NS
spec:
clusterName: USER_CLUSTER
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: PROTECTED_APP_NAME
namespace: USER_CLUSTER_NS
backupRepository: BACKUP_REPOSITORY
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
Haz los cambios siguientes:
BACKUP_PLAN: el nombre de tu plan de copia de seguridad.USER_CLUSTER: el nombre de tu clúster de usuarios.CRON_SCHEDULE: una programación de crontab que indica cuándo programar las copias de seguridad, como"*/30 * * * *". El intervalo mínimo entre copias de seguridad programadas es de 10 minutos.BACKUP_SCHEDULE_STATUS: sitrue, no se programan copias de seguridad periódicas.PROTECTED_APP_NAME: el nombre que le has dado al recursoProtectedApplication.BACKUP_REPOSITORY: el nombre del repositorio de copias de seguridad que usas para almacenar copias de seguridad.BACKUP_DELETE_LOCK_DAYS: impide que se elimine la copia de seguridad durante el número de días especificado después de su creación. Por ejemplo,10 days.BACKUP_RETAIN_DAYS: define el número total de días que se conservará la copia de seguridad. Después de este periodo, la copia de seguridad se elimina automáticamente. Si asignas un valor más alto, puede que se agote el almacenamiento, mientras que, si asignas un valor más bajo, puede que aumente el riesgo de pérdida de datos. Si no se especifica ningún valor, se asigna el valor 35 de forma predeterminada. Las políticas de conservación no anulan las políticas de conservación de la ubicación de almacenamiento ni pueden superar los 90 días.
Siguientes pasos
- Para seleccionar una estrategia de aplicación protegida, consulta Estrategias de aplicación protegida.