Halaman ini menjelaskan cara memodifikasi resource Kubernetes selama proses pemulihan.
Ringkasan
Ada beberapa alasan mengapa Anda perlu mengubah resource Kubernetes sebagai bagian dari proses pemulihan. Contoh:
Anda mungkin ingin menyediakan PVC menggunakan penyedia penyimpanan yang berbeda (misalnya, beralih dari driver in-tree Kubernetes ke driver CSI).
Anda mungkin ingin memulihkan namespace dengan nama yang berbeda.
Anda mungkin ingin mengubah jumlah replika di Deployment atau StatefulSet.
Pencadangan untuk GKE menyediakan mekanisme untuk melakukan hal ini yang disebut aturan substitusi, yang dapat Anda tentukan secara opsional sebagai bagian dari RestorePlan
.
Aturan substitusi adalah serangkaian kriteria pencocokan yang ditentukan bersama dengan nilai kolom pengganti. Anda dapat menggunakan aturan substitusi dalam proses pemulihan sebagai berikut:
Pertama, Pencadangan untuk GKE menghitung kumpulan resource yang akan dipulihkan, berdasarkan parameter cakupan dalam konfigurasi pemulihan (misalnya: namespace, grup/jenis, dll.)
Pencadangan untuk GKE mengevaluasi setiap resource yang dipilih untuk dipulihkan berdasarkan daftar aturan substitusi yang diurutkan. Jika aturan cocok dengan resource, resource akan diperbarui dengan nilai kolom yang diganti. Semua resource dicocokkan dengan semua aturan, dan resource yang sama berpotensi memiliki beberapa substitusi.
Setelah semua aturan dievaluasi, Pencadangan untuk GKE akan membuat serangkaian resource yang dihasilkan di cluster target.
Parameter aturan substitusi
Untuk menentukan aturan substitusi, Anda memberikan parameter berikut:
Parameter | Wajib | Deskripsi |
---|---|---|
targetNamespaces | opsional |
Daftar ini merupakan daftar namespace. Agar cocok dengan aturan ini, resource harus berupa resource dengan namespace dan memiliki salah satu namespace yang ditentukan:
|
targetGroupKinds | opsional |
Berikut adalah daftar tule grup/jenis resource Kubernetes:
|
targetJsonPath | wajib | Ini adalah ekspresi JSONPath yang dicocokkan dengan resource. Perlu diperhatikan bahwa aturan ini tidak hanya cocok dengan resource, tetapi juga mencocokkan atribut tertentu dalam resource tersebut. |
originalValuePattern | opsional | Ini adalah ekspresi reguler yang dicocokkan dengan nilai atribut saat ini. Jika tidak diberikan, atribut tersebut akan selalu cocok. |
newValue | wajib | Ini adalah nilai baru yang akan digunakan untuk nilai atribut yang cocok. |
Untuk mempelajari lebih lanjut cara menentukan aturan penggantian di Konsol Google Cloud, lihat Merencanakan kumpulan pemulihan.
Untuk menentukan aturan substitusi menggunakan gcloud CLI, buat file
yang berisi array YAML dari subsstitutionRules dan sertakan
parameter --substitution-rules-file=
ke
perintah gcloud beta container backup-restore restore-plans create
.
Contoh aturan substitusi
Contoh berikut tersedia dalam format YAML yang digunakan oleh gcloud CLI.
Ubah StorageClass
Dalam contoh ini, kami mengubah StorageClass di semua resource PersistentVolumeClaim yang dipulihkan dari standard
menjadi premium-rwo
:
substitutionRules:
- targetGroupKinds:
- resourceGroup: ''
resourceKind: PersistentVolumeClaim
targetJsonPath: "{..storageClassName}"
originalValuePattern: standard
newValue: premium-rwo
Melakukan cloning Namespace
Dalam contoh ini, kita meng-clone namespace dari alfa ke beta—membuat namespace baru "beta" dan memulihkan semua resource dari "alpha" ke namespace "beta" baru. Perhatikan bahwa contoh ini memerlukan dua aturan substitusi—satu untuk namespace itu sendiri, dan satu untuk resource dalam namespace.
substitutionRules:
- targetNamespaces:
- ''
targetGroupKinds:
- resourceGroup: ''
resourceKind: Namespace
targetJsonPath: "{.metadata.name}"
originalValuePattern: alpha
newValue: beta
- targetNamespaces:
- alpha
targetJsonPath: "{.metadata.namespace}"
originalValuePattern: alpha
newValue: beta
Mengubah jumlah StorageClass dan replika dalam namespace yang dilakukan cloning
Dalam contoh ini, kita meng-clone namespace, lalu menerapkan serangkaian perubahan pada resource dalam namespace baru:
Mengubah StorageClass pada PVC dari
standard
menjadipremium-rwo
Mengubah jumlah replika pada Deployment dari
7
menjadi3
substitutionRules:
- targetNamespaces:
- ''
targetGroupKinds:
- resourceGroup: ''
resourceKind: Namespace
targetJsonPath: "{.metadata.name}"
originalValuePattern: alpha
newValue: beta
- targetNamespaces:
- alpha
targetJsonPath: "{.metadata.namespace}"
originalValuePattern: alpha
newValue: beta
- targetNamespaces:
- beta
targetGroupKinds:
- resourceGroup: ''
resourceKind: PersistentVolumeClaim
targetJsonPath: "{..storageClassName}"
originalValuePattern: standard
newValue: premium-rwo
- targetNamespaces:
- beta
targetGroupKinds:
- resourceGroup: apps
resourceKind: Deployment
targetJsonPath: "{$.spec.replicas}"
originalValuePattern: '7'
newValue: '3'