Questo documento descrive come utilizzare le risorse ProtectedApplication per personalizzare il comportamento di backup e ripristino in Google Distributed Cloud (GDC) con air gap.
Questi passaggi sono facoltativi e non sono necessari per configurare correttamente il backup e il ripristino dei workload. Le risorse ProtectedApplication sono risorse Kubernetes facoltative negli spazi dei nomi che personalizzano il backup e il ripristino di singole applicazioni stateful. Senza le risorse ProtectedApplication, si applicano le seguenti limitazioni:
- Limiti la granularità dell'ambito di backup e ripristino al livello dello spazio dei nomi.
- Durante l'esecuzione del backup non vengono eseguite operazioni di svuotamento e quiescenza sui workload.Di conseguenza, le macchine virtuali con più dischi potrebbero non essere coerenti con gli arresti anomali dopo il ripristino.
Le risorse ProtectedApplication sono risorse facoltative dello spazio dei nomi Kubernetes utilizzate per personalizzare il backup e il ripristino di singole applicazioni stateful.
La risorsa ProtectedApplication definisce quali risorse Kubernetes appartengono a un'istanza dell'applicazione. Puoi configurare manualmente un'orchestrazione specializzata utilizzando il comando kubectl per creare un backup e un ripristino di queste applicazioni nei seguenti scenari:
- Per identificare un insieme di risorse in uno spazio dei nomi di cui potrebbe essere eseguito il backup o il ripristino indipendentemente dalle altre risorse nello spazio dei nomi. Un
ProtectedApplicationè l'entità dello spazio dei nomi più granulare che puoi identificare per un ambito di backup o ripristino. - Per fornire un'orchestrazione di backup specializzata ogni volta che
ProtectedApplicationrientra nell'ambito di un backup. In particolare, seProtectedApplicationcontiene risorsePersistentVolumeClaim(PVC) direttamente o tramite un template di unStatefulSet, puoi eseguire hook prima e dopo il backup dei volumi. Gli hook sono comandi eseguiti nei container delle applicazioni. Questi hook vengono spesso utilizzati per operazioni di flush, quiesce o unquiesce e forniscono un backup coerente con l'applicazione.
Prima di iniziare
Definisci la risorsa ProtectedApplication prima di creare un piano di backup. Per saperne di più, consulta Pianifica un set di backup.
Richiedi ruoli IAM
Per utilizzare le risorse ProtectedApplication, chiedi all'amministratore dell'organizzazione IAM o all'amministratore del progetto IAM di concederti uno dei seguenti ruoli:
User Cluster Backup Admin (
user-cluster-backup-admin): crea, recupera, elenca, controlla, aggiorna, applica patch ed elimina risorse di backup come i piani di backup e ripristino nei cluster utente. Contatta l'amministratore dell'organizzazione IAM per richiedere questo ruolo.Backup Creator (
backup-creator): crea, recupera, elenca, controlla, aggiorna, applica patch ed elimina le richieste di backup manuale e di ripristino manuale. Contatta l'amministratore del progetto IAM per richiedere questo ruolo.
Esegui il deployment delle risorse dell'applicazione protette
Il seguente snippet yaml è un esempio di specifica Deployment con una risorsa ProtectedApplication che esegue il backup di tutte le risorse associate all'applicazione durante il backup e ripristina tutte le risorse durante il ripristino:
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
backupAllRestoreAll: {}
Specifica ProtectedApplication nell'elenco di
selectedApplications in backupScope. Ad esempio:
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
Questo esempio include i seguenti valori:
| Valore | Descrizione |
|---|---|
resourceSelection |
Definisce come identificare le risorse che appartengono all'applicazione protetta:
|
components |
L'elenco dei componenti per l'applicazione protetta, ad esempio deployment o set stateful:
|
Passaggi successivi
- Per selezionare una strategia per le applicazioni protette, consulta Strategie per le applicazioni protette.