Halaman ini menjelaskan cara membuat rencana pemulihan Cadangan untuk GKE, yang digunakan untuk memulihkan cadangan Anda di Google Kubernetes Engine (GKE).
Paket pemulihan adalah skenario pemulihan yang telah dikonfigurasi sebelumnya untuk baris cadangan yang sesuai. Rencana pemulihan dapat menetapkan izin bagi administrator untuk menggunakan konfigurasi ini. Pengguna tersebut dapat dengan cepat dan mandiri memulihkan cadangan saat terjadi insiden. Misalnya, data persisten mungkin rusak karena update software pada aplikasi yang di-deploy sehingga membuat namespace aplikasi berada dalam status tidak valid dan memerlukan pemulihan.
Pencadangan untuk GKE tidak mendukung pemulihan cadangan dari satu project ke project lain. Anda hanya dapat memulihkan cadangan ke cluster dalam project yang sama dengan tempat cadangan berasal. Rencana pemulihan tidak dapat mereferensikan rencana cadangan dalam project yang berbeda.
Selama pemulihan, Anda dapat menerapkan aturan transformasi yang digunakan untuk mencocokkan serangkaian resource dan mengganti nilai atribut saat ini pada resource tersebut dengan nilai baru.
Sebelum memulai
Merencanakan serangkaian cadangan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola rencana pemulihan,
minta administrator untuk memberi Anda
Pencadangan untuk Pemulihan Admin GKE (roles/gkebackup.restoreAdmin
), yang merupakan subkumpulan peran IAM Admin Pencadangan untuk GKE (roles/gkebackup.admin
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat paket pemulihan
Anda dapat membuat paket pemulihan untuk cadangan menggunakan Google Cloud CLI atau Konsol Google Cloud.
gcloud
Untuk membuat paket pemulihan, jalankan perintah berikut:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--backup-plan=BACKUP_PLAN \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
--all-namespaces \
--cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
--cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
--volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY
Ganti kode berikut:
RESTORE_PLAN
: nama paket pemulihan yang ingin Anda buat.PROJECT_ID
: ID project Google Cloud Anda.LOCATION
: region komputasi untuk resource, misalnyaus-central1
. Lihat Tentang lokasi resource. Lokasi harus berada di region yang sama dengan tempat cluster target berada.BACKUP_PLAN
: sumber cadangan yang dapat dipulihkan dengan paket pemulihan ini:projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
Pastikan rencana pencadangan berada dalam project yang sama dengan rencana pemulihan baru.
CLUSTER
: nama cluster target tempat Anda ingin memulihkan cadangan:- Cluster regional:
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
- Cluster zona:
projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
- Cluster regional:
NAMESPACED_RESOURCE_RESTORE_MODE
: menentukan cara menangani konflik waktu pemulihan untuk resource dengan namespace. Resource namespace selalu dipulihkan dalam grup, baik dengan namespace maupun ProtectedApplication. Gunakan salah satu opsi berikut:merge-skip-on-conflict
: melewati setiap resource yang bertentangan.merge-replace-volume-on-conflict
: melewati setiap resource yang bertentangan, tetapi mengganti data volume persisten yang mendasarinya.merge-replace-on-conflict
: mengganti setiap resource yang bertentangan dan data volume persisten yang mendasarinya.delete-and-restore
: Jika cluster target berisi grup resource yang sama dengan yang ditargetkan untuk pemulihan ke cluster, grup resource yang ada akan dihapus sebelum resource baru dipulihkan.fail-on-conflict
: Jika ada grup resource yang ditargetkan untuk pemulihan dari cadangan sudah ada dalam cluster target, pemulihan akan gagal.
--all-namespaces
: memulihkan semua resource dengan namespace di cadangan. Atau, tentukan:--excluded-namespaces
dengan daftar namespace sebagaiNAMESPACE1,NAMESPACE2,...
untuk memulihkan semua namespace kecuali yang ada dalam daftar.--selected-applications
dengan daftar ProtectedApplications sebagaiNAMESPACE1/APP1,NAMESPACE2/APP2,...
yang akan dipulihkan.--selected-namespaces
dengan daftar namespace sebagaiNAMESPACE1,NAMESPACE2,...
yang akan dipulihkan.--no-namespaces
tidak memulihkan resource dengan namespace di cadangan. Opsi ini tidak dapat ditentukan bersama dengan--cluster-resource-scope-no-group-kinds
.
Anda harus menentukan salah satu opsi ini saat membuat rencana pemulihan.
CLUSTER_RESOURCE_CONFLICT_POLICY
: menentukan cara menangani konflik waktu pemulihan untuk resource cluster yang dipilih. Gunakan salah satu opsi berikut:use-existing-version
: Jika resource yang dipulihkan sudah ada di cluster target, Pencadangan untuk GKE akan mempertahankan resource yang ada.use-backup-version
: Jika resource yang dipulihkan sudah ada di cluster target, Pencadangan untuk GKE akan mengganti resource yang ada dengan resource baru dari cadangan.
--cluster-resource-scope-selected-group-kinds
: (Opsional) memulihkan resource cluster dengan jenis grup yang dipilih dalam formatGroup/Kind
.CLUSTER_RESOURCE_SCOPE
menentukan GroupKind dari resource cluster yang akan dipulihkan. Contoh,apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass
Atau, tentukan:
cluster-resource-scope-all-group-kinds
untuk memilih semua jenis grup resource cluster yang akan dipulihkan.cluster-resource-scope-excluded-group-kinds
dengan daftar jenis grup resource cluster untuk memulihkan semua jenis grup resource cluster kecuali yang ada dalam daftar.cluster-resource-scope-no-group-kinds
. Opsi ini tidak dapat ditentukan bersama dengan--no-namespaces
.
Tidak menentukan salah satu opsi ini tidak akan memulihkan resource cluster apa pun.
VOLUME_DATA_RESTORE_POLICY
: menentukan cara data diisi untuk volume yang dipulihkan. Gunakan salah satu opsi berikut:restore-volume-data-from-backup
: PV baru akan dipulihkan menggunakan data cadangan volume yang sesuai di Pencadangan.reuse-volume-handle-from-backup
: PV akan disediakan sebelumnya menggunakan handle volume PV asli di Cadangan.no-volume-data-restoration
: PV tidak akan dipulihkan. Pemulihan hanya memulihkan PVC yang dipilih dan memprediksi driver penyimpanan yang sesuai untuk menyediakan PV kosong secara dinamis atau mengikatnya ke PV kosong yang telah disediakan dan dibuat secara out-of-band.
Untuk daftar lengkap opsi, lihat
dokumentasi
gcloud beta container backup-restore restore-plans create
.
Membuat RestorePlan untuk semua namespace
Perintah berikut akan membuat RestorePlan untuk memulihkan semua namespace dan resource cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=BACKUP_PLAN \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--all-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds \
--volume-data-restore-policy=restore-volume-data-from-backup
Membuat RestorePlan untuk me-roll back namespace
Perintah berikut akan membuat RestorePlan untuk me-roll back
namespace my-ns
dari pencadangan:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=BACKUP_PLAN \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-namespaces=my-ns \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
--volume-data-restore-policy=restore-volume-data-from-backup
Membuat RestorePlan untuk me-roll back ProtectedApplication
agar dapat menghubungkan kembali volume asli
Perintah berikut akan membuat RestorePlan untuk me-roll back
ProtectedApplication my-ns/my-app
agar dapat menghubungkan kembali volume asli:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=BACKUP_PLAN \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-applications=my-ns/my-app \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-no-group-kinds \
--volume-data-restore-policy=reuse-volume-handle-from-backup
Membuat RestorePlan untuk memulihkan resource cluster saja
Perintah berikut akan membuat RestorePlan untuk memulihkan semua resource cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=BACKUP_PLAN \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--no-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds
Konsol
Gunakan petunjuk berikut untuk membuat rencana pemulihan di konsol Google Cloud:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di menu navigasi, klik Pencadangan untuk GKE.
Klik Buat rencana pencadangan.
Di bagian Beri nama rencana Anda lalu pilih cluster, selesaikan langkah berikut lalu klik Berikutnya:
- Masukkan nama paket pemulihan dan deskripsi opsional.
- Pilih rencana pencadangan untuk cluster yang ada dan sesuai dengan cadangan yang ingin Anda pulihkan.
- Pilih cluster target tempat Anda ingin memulihkan cadangan.
Di bagian Pilih resource dengan namespace, selesaikan langkah-langkah berikut, lalu klik Berikutnya:
Pilih namespace yang akan dipulihkan:
- Klik Semua resource dengan namespace untuk memulihkan semua
resource dengan namespace dalam cadangan.
- Klik Tambahkan namespace di bagian Pengecualian untuk mengecualikan namespace apa pun dalam cadangan.
- Klik Resource dengan namespace yang dipilih untuk menentukan namespace dalam cadangan yang akan dipulihkan.
- Klik Aplikasi dilindungi yang dipilih untuk menambahkan resource dengan menentukan namespace dan nama aplikasi.
- Klik Tidak ada resource dengan namespace agar tidak memulihkan resource dengan namespace.
- Klik Semua resource dengan namespace untuk memulihkan semua
resource dengan namespace dalam cadangan.
Pilih cara menangani konflik jika resource dengan namespace dipilih:
- Klik Gabungkan lewati (non-destruktif) jika resource tertentu sudah ada, lewati pemulihan resource dari cadangan.
- Klik Gabungkan volume penggantian (destruktif) jika resource tertentu sudah ada, lewati pemulihan resource tersebut, tetapi ganti volume persisten yang mendasarinya menggunakan kebijakan pemulihan data volume. Volume penggantian penggabungan mencapai pemulihan khusus data.
- Klik Gabungkan penggantian (destruktif) jika resource tertentu sudah ada, ganti resource tersebut dengan resource dari cadangan dan data volume terkait dengan mengikuti kebijakan pemulihan data volume.
- Klik Gagal karena konflik (non-destruktif) untuk menggagalkan pemulihan jika ada namespace yang ditargetkan untuk dipulihkan dari cadangan yang sudah ada di cluster target.
- Klik Rollback (destruktif) untuk menghapus namespace yang ada sebelum memulihkan namespace baru jika ada namespace yang ditargetkan untuk pemulihan dari cadangan yang sudah ada di cluster target.
Pilih cara memulihkan data volume, lalu klik Berikutnya:
- Klik Sediakan volume baru dan pulihkan data volume dari cadangan untuk memulihkan data volume dari cadangan di persistent disk baru.
- Klik Jangan pulihkan data volume untuk menyediakan
volume persisten baru. Jika cluster target berisi volume persisten
tidak terikat yang memenuhi persyaratan
PersistentVolumeClaim
, cluster tersebut akan terikat dengan volume. - Klik Gunakan kembali volume yang ada dan berisi data Anda untuk
tidak memulihkan data cadangan volume. Setiap
PersistentVolumeClaims
terikat dengan volume yang merujuk pada persistent disk yang ada.
(Opsional) Di bagian Pilih resource cakupan cluster, selesaikan langkah berikut lalu klik Berikutnya:
Pilih jenis grup yang akan dipulihkan:
- Klik Semua resource cakupan cluster untuk memulihkan semua
resource cakupan cluster dalam cadangan.
- Klik Tambahkan groupkind di bagian Pengecualian untuk mengecualikan resource cakupan cluster dalam cadangan.
- Klik Resource cakupan cluster yang dipilih untuk menentukan
resource cakupan cluster dalam cadangan yang akan dipulihkan.
apiextensions.k8s.io/CustomResourceDefinition
danstorage.k8s.io/StorageClass
dipilih secara default. Klik Tambahkan groupkind untuk menambahkan lebih banyak resource cakupan cluster. - Klik Tidak ada resource cakupan cluster untuk memilih tidak memulihkan resource cluster apa pun.
- Klik Semua resource cakupan cluster untuk memulihkan semua
resource cakupan cluster dalam cadangan.
Pilih cara menangani konflik jika resource cakupan cluster dipilih:
- Klik Simpan resource dalam cluster target untuk melewati resource jika resource sudah ada di cluster target.
Klik Ganti resource dalam cluster target untuk menghapus resource jika sudah ada dalam cluster target, dan memulihkan salinan dari cadangan.
(Opsional) Di bagian Tambahkan aturan transformasi, selesaikan langkah berikut, lalu klik Berikutnya:
- Klik Tambahkan aturan, lalu masukkan deskripsi opsional.
- Jika Anda ingin membatasi aturan transformasi ke resource yang cocok dengan kondisi tertentu, lakukan tindakan berikut di bagian Menentukan kondisi dan tindakan resource:
- Klik Kondisi namespace dan ketik daftar namespace untuk mencocokkan resource dalam namespace tersebut.
- Klik Groupkind condition dan ketik jenis grup API, lalu ketik jenis objek. Tindakan ini akan mencocokkan grup API dengan resource dalam jenis tersebut.
- Klik JSON path condition dan ketik jalur JSON yang mengidentifikasi kolom di dalam resource yang cocok dan menerapkan transformasi.
- Ketik nilai baru yang menggantikan nilai saat ini dari atribut yang cocok, atau pilih kotak centang Ganti nilai spesifik (menggunakan ekspresi reguler). Kemudian ketik pola untuk membandingkan dengan nilai saat ini dari resource tersebut.
- Klik Simpan perubahan.
Tinjau detail rencana pemulihan, lalu klik Buat rencana.
Melihat paket pemulihan
Anda dapat melihat paket pemulihan beserta detailnya menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Untuk menampilkan daftar semua rencana pemulihan di dalam project dan lokasi, jalankan perintah berikut:
gcloud beta container backup-restore restore-plans list \
--project=PROJECT_ID \
--location=LOCATION
Khusus untuk perintah list
, Anda dapat memberikan -
sebagai nilai untuk
parameter apa pun kecuali PROJECT_ID
. Nilai -
berfungsi sebagai
karakter pengganti. Nilai -
adalah default untuk parameter apa pun jika Anda tidak menentukan opsi command line atau menetapkan properti.
Untuk daftar lengkap opsi, lihat
dokumentasi
gcloud beta container backup-restore restore-plans list
.
Untuk melihat detail paket pemulihan, jalankan perintah berikut:
gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Konsol
Gunakan petunjuk berikut untuk melihat rencana pemulihan beserta detailnya di konsol Google Cloud:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di menu navigasi, klik Pencadangan untuk GKE.
Klik tab Pulihkan Paket.
Luaskan rencana cadangan lalu klik nama paket pemulihan.
Klik tab Detail untuk melihat detailnya.
Memperbarui paket pemulihan
Perbarui paket pemulihan beserta detailnya menggunakan gcloud CLI.
gcloud
Untuk memperbarui paket pemulihan, misalnya dengan menambahkan deskripsi baru, jalankan perintah berikut:
gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--description=DESCRIPTION
Untuk daftar lengkap opsi, lihat
dokumentasi
gcloud beta container backup-restore restore-plans update
.
Konsol
Gunakan petunjuk berikut untuk memperbarui rencana pemulihan di konsol Google Cloud:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di menu navigasi, klik Pencadangan untuk GKE.
Klik tab Pulihkan Paket.
Klik nama paket pemulihan.
Klik tab Detail.
Klik edit Edit untuk mengedit bagian rencana, lalu klik Simpan perubahan.
Menghapus paket pemulihan
Anda dapat menghapus paket pemulihan menggunakan gcloud CLI atau Konsol Google Cloud. Menghapus paket pemulihan juga akan menghapus semua paket pemulihan anak.
gcloud
Untuk menghapus paket pemulihan, jalankan perintah berikut:
gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Untuk mengetahui daftar lengkap opsi, lihat
dokumentasi
gcloud beta container backup-restore restore-plans delete
.
Konsol
Gunakan petunjuk berikut untuk menghapus paket pemulihan di konsol Google Cloud:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di menu navigasi, klik Pencadangan untuk GKE.
Klik tab Pulihkan Paket.
Luaskan cluster lalu klik nama rencana.
Klik delete Hapus rencana.
Ketik nama paket pemulihan, lalu klik Hapus rencana pemulihan di dialog konfirmasi.
Langkah berikutnya
- Pelajari lebih lanjut cara memulihkan cadangan.