Halaman ini menjelaskan cara menggunakan bmctl
untuk mencadangkan dan memulihkan cluster yang dibuat
dengan Google Distributed Cloud. Petunjuk ini berlaku untuk semua jenis cluster yang didukung
oleh Google Distributed Cloud.
Proses pencadangan dan pemulihan bmctl
tidak mencakup tindakan
volume. Setiap volume yang dibuat oleh penyedia volume lokal (LVP) tersisa
tidak diubah.
Mencadangkan cluster
Perintah bmctl backup cluster
menambahkan informasi cluster dari etcd
dan sertifikat PKI untuk cluster yang ditentukan cluster ke {i>tar<i}
. Penyimpanan {i>etcd<i} adalah penyimpanan pendukung Kubernetes
untuk semua data cluster dan
berisi semua objek Kubernetes dan objek kustom yang diperlukan untuk mengelola
status cluster terlebih dahulu. Sertifikat IKP digunakan untuk otentikasi melalui TLS. Ini
data dicadangkan dari bidang kontrol cluster atau dari salah satu kontrol
pesawat untuk
ketersediaan tinggi (HA)
deployment.
File tar cadangan berisi kredensial sensitif, termasuk layanan Anda kunci akun dan kunci SSH. Simpan file cadangan di lokasi yang aman. Kepada mencegah paparan file yang tidak diinginkan, proses pencadangan Google Distributed Cloud menggunakan file dalam memori saja.
Cadangkan cluster Anda secara teratur untuk memastikan data snapshot Anda relatif saat ini. Sesuaikan tingkat pencadangan untuk mencerminkan frekuensi perubahan pada cluster Anda.
Versi bmctl
yang Anda gunakan untuk mencadangkan cluster harus cocok dengan versi
cluster pengelola.
Untuk mencadangkan cluster:
Pastikan cluster Anda beroperasi dengan baik, dengan kredensial yang berfungsi dan SSH konektivitas ke semua node.
Tujuan proses pencadangan adalah menangkap cluster Anda dalam sehingga Anda bisa memulihkan operasi jika terjadi kegagalan dahsyat.
Gunakan perintah berikut untuk memeriksa cluster Anda:
bmctl check cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ingin Anda jadikan target cadangkan.ADMIN_KUBECONFIG
: jalur file kubeconfig untuk cluster admin.
Jalankan perintah berikut untuk memastikan cluster target tidak ada status rekonsiliasi:
kubectl describe cluster CLUSTER_NAME -n CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan dicadangkan.CLUSTER_NAMESPACE
: namespace untuk . Secara default, namespace cluster untuk Google Distributed Cloud adalah nama cluster yang diawali dengancluster-
. Misalnya, jika beri nama cluster Andatest
, namespace memiliki nama seperticluster-test
.ADMIN_KUBECONFIG
: jalur file kubeconfig untuk cluster admin.
Periksa bagian
Status
di output perintah untuk jenisConditions
Reconciling
.Seperti ditunjukkan dalam contoh berikut, status
False
untukConditions
berarti cluster stabil dan siap untuk dicadangkan.... Status: ... Cluster State: Running ... Control Plane Node Pool Status: ... Conditions: Last Transition Time: 2023-11-03T16:37:15Z Observed Generation: 1 Reason: ReconciliationCompleted Status: False Type: Reconciling ...
Jalankan perintah berikut untuk mencadangkan cluster:
bmctl backup cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan dicadangkan.ADMIN_KUBECONFIG
: jalur ke cluster admin {i>kubeconfig<i}.
Secara default, file tar cadangan disimpan ke direktori Workspace (
bmctl-workspace
, secara default) di workstation admin Anda. File tar diberi namaCLUSTER_NAME_backup_TIMESTAMP.tar.gz
, denganCLUSTER_NAME
adalah nama cluster yang dicadangkan danTIMESTAMP
adalah tanggal dan waktu pencadangan dilakukan. Misalnya, jika nama cluster adalahtestuser
, file cadangan memiliki nama sepertitestuser_backup_2006-01-02T150405Z0700.tar.gz
.Untuk menentukan nama dan lokasi yang berbeda untuk file cadangan Anda, gunakan
--backup-file
.
Masa berlaku file cadangan akan berakhir setelah satu tahun dan proses pemulihan cluster tidak terjadi bekerja dengan file cadangan yang sudah tidak berlaku.
Memulihkan cluster
Memulihkan cluster dari cadangan adalah upaya terakhir dan harus digunakan ketika
cluster mengalami kegagalan fatal dan tidak dapat dikembalikan ke layanan
sebelumnya. Misalnya, data dlld rusak atau Pod etcd
mengalami error
.
File tar cadangan berisi kredensial sensitif, termasuk layanan Anda kunci akun dan kunci SSH. Untuk mencegah eksposur file yang tidak diinginkan, Proses pemulihan Google Distributed Cloud hanya menggunakan file dalam memori.
Versi bmctl
yang Anda gunakan untuk memulihkan cluster harus cocok dengan versi
cluster pengelola.
Untuk memulihkan cluster:
Pastikan semua mesin node yang tersedia untuk cluster pada saat cadangan beroperasi dengan benar dan dapat dijangkau.
Pastikan bahwa konektivitas SSH antar node berfungsi dengan kunci SSH yang digunakan pada saat pencadangan.
Kunci SSH ini diaktifkan kembali sebagai bagian dari proses pemulihan.
Pastikan kunci akun layanan yang digunakan pada saat pencadangan masih aktif.
Kunci akun layanan ini diaktifkan kembali untuk cluster yang dipulihkan.
Untuk memulihkan cluster admin, hybrid, atau mandiri, jalankan perintah berikut berikut:
bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda memulihkan.BACKUP_FILE
: jalur dan nama file cadangan yang Anda gunakan.
Untuk memulihkan cluster pengguna, jalankan perintah berikut:
bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE \ --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda memulihkan.BACKUP_FILE
: jalur dan nama file cadangan yang Anda gunakan.ADMIN_KUBECONFIG
: jalur ke cluster admin {i>kubeconfig<i}.
Di akhir proses pemulihan, file kubeconfig baru dibuat untuk cluster yang dipulihkan.
Memecahkan masalah
Jika Anda mengalami masalah dengan proses pencadangan atau pemulihan, baca bagian berikut dapat membantu Anda memecahkan masalah tersebut.
Jika Anda memerlukan bantuan tambahan, hubungi Dukungan Google.
Kehabisan memori selama pencadangan atau pemulihan
Anda mungkin menerima pesan {i>error<i} selama
proses pencadangan atau pemulihan yang
tidak terlalu jelas atau terlalu jelas
tentang langkah selanjutnya. Jika {i>workstation<i} di mana
Anda menjalankan perintah bmctl
yang tidak memiliki banyak RAM, Anda mungkin perlu
memori yang tidak cukup untuk melakukan
proses pencadangan atau pemulihan.
Google Distributed Cloud versi 1.13 dan yang lebih baru dapat menggunakan parameter --use-disk
di
perintah pencadangan. Untuk mempertahankan izin file, parameter ini mengubah
izin akses file, sehingga mengharuskan
pengguna yang menjalankan perintah untuk
pengguna root (atau gunakan sudo
).
Tidak ada izin ke file selama pemulihan
Setelah tugas pemulihan berhasil, menghapus bootstrap bisa gagal dengan error mirip dengan contoh berikut:
Error: failed to restore node config files: sftp: "Failure" (SSH_FX_FAILURE)
Kesalahan ini bisa berarti bahwa beberapa direktori yang dibutuhkan oleh pemulihan tidak dapat ditulis.
Google Distributed Cloud versi 1.14 dan yang lebih baru memiliki pesan error yang lebih jelas direktori harus dapat ditulisi. Pastikan direktori yang dilaporkan telah dapat ditulisi, dan memperbarui izin akses pada direktori sesuai kebutuhan.
Penyegaran kunci SSH setelah cadangan menghentikan proses pemulihan
Operasi terkait SSH selama proses pemulihan mungkin gagal jika kunci SSH diperbarui setelah pencadangan dilakukan. Dalam hal ini, kunci SSH yang baru menjadi tidak valid untuk proses pemulihan.
Untuk mengatasi masalah ini, Anda dapat menambahkan kembali kunci SSH asli untuk sementara, lalu melakukan pemulihan. Setelah proses pemulihan selesai, Anda dapat merotasi kunci SSH.