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 leProtectedApplication
contient des ressourcesPersistentVolumeClaim
(PVC) directement ou via un modèle à partir d'unStatefulSet
, 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
).
- 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 (
- 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
).
- 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 (
- Pour en savoir plus, consultez Définitions des rôles.
- Pour les utilisateurs administrateurs de plate-forme :
Déployer des ressources d'application protégées
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 :
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
Spécifiez le ProtectedApplication
dans la liste des selectedApplications
dans le backupScope
. Exemple :
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
Cet exemple inclut les valeurs suivantes :
Valeur | Description |
---|---|
resourceSelection |
Définit comment identifier les ressources appartenant à l'application protégée :
|
components |
Liste des composants de l'application protégée, tels que les déploiements ou les ensembles avec état :
|
Étapes suivantes
- Pour sélectionner une stratégie d'application protégée, consultez Stratégies d'application protégée.