Menyesuaikan pencadangan dan pemulihan untuk aplikasi

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 dalam 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. ProtectedApplication adalah entitas namespace yang paling terperinci yang dapat Anda identifikasi untuk cakupan pencadangan atau pemulihan.
  • Untuk menyediakan orkestrasi pencadangan khusus setiap kali ProtectedApplication berada dalam cakupan pencadangan. Khususnya, jika ProtectedApplication berisi resource PersistentVolumeClaim (PVC) baik secara langsung maupun melalui template dari StatefulSet, 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:

  • Anda harus menentukan resource ProtectedApplication sebelum membuat rencana pencadangan. Untuk mengetahui informasi selengkapnya, lihat Merencanakan serangkaian pencadangan.
  • 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).
    • 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).
    • Untuk mengetahui informasi selengkapnya, lihat Definisi peran.

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: "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

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 berikut:

Nilai Deskripsi
resourceSelection Menentukan cara mengidentifikasi resource yang termasuk dalam aplikasi yang dilindungi:
  • type: Tentukan salah satu dari:
    • ApplicationName: Mencadangkan aplikasi sig-apps dalam namespace yang sama.
    • Selector: Mencadangkan resource yang cocok dengan pemilih tertentu dalam namespace yang sama.
  • applicationName: Jika type adalah ApplicationName, menentukan nama Aplikasi sig-apps dalam namespace yang sama.
  • selector: Jika type adalah Selector, menentukan pemilih label untuk memilih resource dalam namespace yang sama.
components Daftar komponen untuk aplikasi yang dilindungi, seperti deployment atau set stateful:
  • name: Nama unik komponen.
  • resourceKind: Pilih antara Deployment atau StatefulSet.
  • resourceNames: Daftar nama yang mengidentifikasi resourceKind di namespace.
  • strategy: Detail tambahan tentang cara mencadangkan atau memulihkan komponen ini. Untuk mengetahui informasi selengkapnya, lihat Strategi aplikasi yang dilindungi.

Langkah berikutnya