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 elProtectedApplication
contiene recursos dePersistentVolumeClaim
(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 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
).
- 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 (
- 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
).
- 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 (
- Para obtener más información, consulta Definiciones de roles.
- Para los usuarios administradores de la plataforma (PA):
Implementa recursos de aplicaciones protegidas
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:
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 |
La lista de componentes de la aplicación protegida, como implementaciones o conjuntos con estado:
|
¿Qué sigue?
- Para seleccionar una estrategia de aplicación protegida, consulta Estrategias de aplicación protegida.