Questa pagina descrive come utilizzare le risorse ProtectedApplication
per personalizzare il comportamento di backup e ripristino in Google Distributed Cloud (GDC) air-gapped.
I passaggi descritti in questa pagina sono facoltativi e non sono necessari per configurare correttamente il backup e il ripristino dei carichi di lavoro. Le risorse ProtectedApplication
sono risorse Kubernetes facoltative negli spazi dei nomi che personalizzano il backup e il ripristino di singole applicazioni stateful. Senza 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 flush e quiescenza sui workload.Ciò potrebbe comportare che le macchine virtuali con più dischi non siano coerenti in caso di arresto anomalo dopo il ripristino.
Le risorse ProtectedApplication
sono risorse dello spazio dei nomi Kubernetes facoltative
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 dello stesso 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
ProtectedApplication
rientra nell'ambito di un backup. In particolare, seProtectedApplication
contiene risorsePersistentVolumeClaim
(PVC) direttamente o tramite un modello diStatefulSet
, 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 scarico, sospensione o ripristino e forniscono un backup coerente con l'applicazione.
Prima di iniziare
Per utilizzare le risorse ProtectedApplication
, devi disporre di:
- Devi definire la risorsa
ProtectedApplication
prima di creare un piano di backup. Per ulteriori informazioni, vedi Pianificare un insieme di backup. Il ruolo di identità e accesso necessario:
- Per gli utenti con ruolo di amministratore della piattaforma:
- Amministratore backup cluster utente: gestisce le risorse di backup come i piani di backup e ripristino nei cluster utente. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore backup cluster utente (
user-cluster-backup-admin
).
- Amministratore backup cluster utente: gestisce le risorse di backup come i piani di backup e ripristino nei cluster utente. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore backup cluster utente (
- Per gli utenti con ruolo Operatore applicazione (AO):
- Backup Creator: crea backup manuali ed esegue ripristini. Chiedi all'amministratore IAM del progetto di concederti il ruolo Autore backup (
backup-creator
).
- Backup Creator: crea backup manuali ed esegue ripristini. Chiedi all'amministratore IAM del progetto di concederti il ruolo Autore backup (
- Per ulteriori informazioni, vedi Definizioni dei ruoli.
- Per gli utenti con ruolo di amministratore della piattaforma:
Esegui il deployment delle risorse dell'applicazione protette
Ecco 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
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, come deployment o set con stato:
|
Passaggi successivi
- Per selezionare una strategia di applicazione protetta, consulta Strategie di applicazione protetta.