Menyesuaikan pencadangan dan pemulihan untuk aplikasi

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. ProtectedApplication adalah entity namespace paling mendetail yang dapat Anda identifikasi untuk cakupan pencadangan atau pemulihan.
  • Untuk menyediakan orkestrasi pencadangan khusus setiap kali ProtectedApplication berada dalam cakupan pencadangan. Secara khusus, 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 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:
  • 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