Dokumen ini menjelaskan cara menggunakan resource ProtectedApplication untuk menyesuaikan
perilaku pencadangan dan pemulihan di Google Distributed Cloud (GDC) dengan air gap.
Langkah-langkah ini bersifat opsional dan tidak diperlukan agar berhasil mengonfigurasi pencadangan dan pemulihan untuk workload Anda. Resource ProtectedApplication adalah resource Kubernetes opsional dalam namespace yang menyesuaikan pencadangan dan pemulihan setiap aplikasi stateful. Tanpa resource ProtectedApplication, batasan berikut berlaku:
- Anda membatasi granularitas cakupan pencadangan dan pemulihan ke tingkat namespace.
- Tidak ada operasi flush dan quiesce yang terjadi pada workload selama eksekusi pencadangan.Hal ini dapat menyebabkan mesin virtual dengan beberapa disk tidak konsisten terhadap error setelah pemulihan.
Resource ProtectedApplication adalah resource namespace Kubernetes opsional yang digunakan untuk menyesuaikan pencadangan dan pemulihan setiap aplikasi stateful.
Resource ProtectedApplication menentukan resource Kubernetes mana yang termasuk dalam instance aplikasi. Anda dapat menyiapkan orkestrasi khusus secara manual
menggunakan perintah kubectl untuk membuat pencadangan dan pemulihan aplikasi tersebut dalam skenario
berikut:
- Untuk mengidentifikasi sekumpulan resource dalam namespace yang mungkin dicadangkan atau
dipulihkan secara independen dari resource lain dalam namespace tersebut.
ProtectedApplicationadalah entity namespace paling mendetail yang dapat Anda identifikasi untuk cakupan pencadangan atau pemulihan. - Untuk menyediakan orkestrasi pencadangan khusus setiap kali
ProtectedApplicationberada dalam cakupan pencadangan. Secara khusus, jikaProtectedApplicationberisi resourcePersistentVolumeClaim(PVC) baik secara langsung maupun melalui template dariStatefulSet, Anda dapat menjalankan hook sebelum dan setelah mencadangkan volume. Hook adalah perintah yang berjalan di container aplikasi. Hook ini sering digunakan untuk operasi flush, quiesce, atau unquiesce, dan menyediakan cadangan yang konsisten dengan aplikasi.
Sebelum memulai
Tentukan resource ProtectedApplication sebelum membuat rencana pencadangan. Untuk mengetahui informasi selengkapnya, lihat Merencanakan serangkaian cadangan.
Meminta peran IAM
Untuk menggunakan resource ProtectedApplication, minta Admin Org IAM atau Admin Project IAM Anda untuk memberi Anda salah satu peran berikut:
User Cluster Backup Admin (
user-cluster-backup-admin): membuat, mendapatkan, mencantumkan, memantau, memperbarui, mem-patch, dan menghapus resource cadangan seperti rencana pencadangan dan pemulihan di cluster pengguna. Hubungi Admin Org IAM Anda untuk meminta peran ini.Backup Creator (
backup-creator): membuat, mendapatkan, mencantumkan, memantau, mengupdate, mem-patch, dan menghapus permintaan pencadangan manual dan permintaan pemulihan manual. Hubungi IAM Project Admin Anda untuk meminta peran ini.
Men-deploy resource aplikasi yang dilindungi
Cuplikan yaml berikut adalah contoh spesifikasi Deployment dengan resource ProtectedApplication yang mencadangkan semua resource yang terkait dengan aplikasi selama pencadangan, dan memulihkan semua resource selama pemulihan:
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: {}
Tentukan ProtectedApplication dalam daftar
selectedApplications di backupScope. Contoh:
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
Contoh ini mencakup nilai-nilai berikut:
| Nilai | Deskripsi |
|---|---|
resourceSelection |
Menentukan cara mengidentifikasi resource yang termasuk dalam aplikasi yang dilindungi:
|
components |
Daftar komponen untuk aplikasi yang dilindungi, seperti deployment atau set stateful:
|
Langkah berikutnya
- Untuk memilih strategi aplikasi yang dilindungi, lihat Strategi aplikasi yang dilindungi.