Halaman ini menjelaskan cara menggunakan resource ProtectedApplication untuk menyesuaikan perilaku pencadangan dan pemulihan di Google Distributed Cloud (GDC) yang terisolasi.
Langkah-langkah yang dijelaskan di halaman ini bersifat opsional dan tidak diperlukan agar Anda berhasil mengonfigurasi pencadangan dan pemulihan untuk beban kerja Anda. Resource ProtectedApplication adalah resource Kubernetes opsional di namespace yang menyesuaikan pencadangan dan pemulihan aplikasi stateful individual. Tanpa resource ProtectedApplication, batasan berikut berlaku:
- Anda membatasi perincian 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 setelah pemulihan.
Resource ProtectedApplication adalah resource namespace Kubernetes opsional yang digunakan untuk menyesuaikan pencadangan dan pemulihan aplikasi stateful individual.
Resource ProtectedApplication menentukan resource Kubernetes mana yang termasuk dalam
instance aplikasi. Anda dapat menyiapkan orkestrasi khusus secara manual menggunakan perintah kubectl untuk membuat cadangan dan memulihkan aplikasi tersebut dalam skenario berikut:
- Untuk mengidentifikasi sekumpulan resource dalam namespace yang dapat dicadangkan atau dipulihkan secara terpisah dari resource lain dalam namespace tersebut.
ProtectedApplicationadalah entitas namespace dengan perincian paling tinggi yang dapat Anda identifikasi untuk cakupan pencadangan atau pemulihan. - Untuk menyediakan orkestrasi pencadangan khusus setiap kali
ProtectedApplicationberada dalam cakupan pencadangan. Khususnya, 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 pencadangan yang konsisten dengan aplikasi.
Sebelum memulai
Untuk menggunakan resource ProtectedApplication, Anda harus memiliki hal berikut:
- Anda harus menentukan resource
ProtectedApplicationsebelum membuat rencana pencadangan. Untuk mengetahui informasi selengkapnya, lihat Merencanakan serangkaian cadangan. Peran akses dan identitas yang diperlukan:
- Untuk pengguna Administrator Platform (PA):
- Admin Pencadangan Cluster Pengguna: mengelola resource pencadangan seperti rencana pencadangan dan pemulihan di cluster pengguna. Minta Admin IAM Organisasi Anda untuk memberi Anda peran User Cluster Backup Admin (
user-cluster-backup-admin).
- Admin Pencadangan Cluster Pengguna: mengelola resource pencadangan seperti rencana pencadangan dan pemulihan di cluster pengguna. Minta Admin IAM Organisasi Anda untuk memberi Anda peran User Cluster Backup Admin (
- Untuk pengguna Operator Aplikasi (AO):
- Pembuat Cadangan: membuat cadangan dan pemulihan manual. Minta Admin IAM Project Anda untuk memberi Anda peran Pembuat Cadangan (
backup-creator).
- Pembuat Cadangan: membuat cadangan dan pemulihan manual. Minta Admin IAM Project Anda untuk memberi Anda peran Pembuat Cadangan (
- Untuk mengetahui informasi selengkapnya, lihat Definisi peran.
- Untuk pengguna Administrator Platform (PA):
Men-deploy resource aplikasi yang dilindungi
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: USER_CLUSTER_NS
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: USER_CLUSTER_NS
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: USER_CLUSTER_NS
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_APP_NAME
namespace: USER_CLUSTER_NS
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Ganti kode berikut:
USER_CLUSTER_NS: namespace dalam cluster pengguna tempat aplikasi yang dilindungi berada.PROTECTED_APP_NAME: namaProtectedApplicationAnda.
Contoh ini mencakup nilai berikut untuk ProtectedApplication:
| 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:
|
Tentukan ProtectedApplication dalam daftar selectedApplications di backupScope. Contoh:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: BACKUP_PLAN
namespace: USER_CLUSTER_NS
spec:
clusterName: USER_CLUSTER
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: PROTECTED_APP_NAME
namespace: USER_CLUSTER_NS
backupRepository: BACKUP_REPOSITORY
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
Ganti kode berikut:
BACKUP_PLAN: nama rencana cadangan Anda.USER_CLUSTER: nama cluster pengguna Anda.CRON_SCHEDULE: jadwal crontab yang menunjukkan kapan pencadangan harus dijadwalkan, seperti"*/30 * * * *". Interval minimum antar-cadangan terjadwal adalah 10 menit.BACKUP_SCHEDULE_STATUS: jikatrue, pencadangan berkala tidak dijadwalkan.PROTECTED_APP_NAME: nama yang Anda berikan untuk resourceProtectedApplication.BACKUP_REPOSITORY: nama repositori cadangan yang Anda gunakan untuk menyimpan cadangan.BACKUP_DELETE_LOCK_DAYS: mencegah penghapusan cadangan selama jumlah hari yang ditentukan setelah pembuatan cadangan, misalnya,10 days.BACKUP_RETAIN_DAYS: menentukan jumlah total hari untuk mempertahankan cadangan. Setelah periode ini, cadangan akan otomatis dihapus. Menyetel nilai ini ke angka yang lebih tinggi dapat menyebabkan kehabisan penyimpanan, sementara menyetelnya ke nilai yang lebih rendah dapat meningkatkan risiko kehilangan data. Nilai ini ditetapkan ke 35 secara default jika tidak ditentukan. Kebijakan retensi tidak menggantikan kebijakan retensi lokasi penyimpanan, dan tidak boleh melebihi 90 hari.
Langkah berikutnya
- Untuk memilih strategi aplikasi yang dilindungi, lihat Strategi aplikasi yang dilindungi.