Jika node di Google Distributed Cloud gagal, yang dapat terjadi karena masalah dengan penyimpanan, jaringan, atau kesalahan konfigurasi OS, Anda ingin memulihkan kesehatan cluster secara efisien. Setelah memulihkan kesehatan cluster, Anda dapat memecahkan masalah kegagalan node. Dokumen ini menunjukkan cara memulihkan dari skenario kegagalan node dengan mereset node, dan menghapus node secara paksa jika diperlukan.
Jika Anda ingin menambahkan atau menghapus node dari cluster saat node tidak gagal, lihat Mengupdate cluster.
Mereset node
Jika node di Google Distributed Cloud gagal karena kesalahan hardware, kerusakan disk, atau masalah sistem operasi, Anda harus memulihkan kesehatan cluster sebelum memecahkan masalah mesin yang mendasarinya.
Arsitektur pemulihan node
Node fisik di Google Distributed Cloud dirancang sebagai unit infrastruktur sekali pakai. Jika sistem operasi node rusak, Anda harus menghapus node dari cluster secara bersih, menginstal ulang sistem operasi Linux dasar yang baru, dan menambahkan kembali node ke cluster.
Jangan mencoba memulihkan node dari cadangan OS image tingkat host atau snapshot disk. Memulihkan node dari status OS sebelumnya akan merusak konsensus Raft pada node bidang kontrol dan menyebabkan konflik alamat IP Dataplane V2 pada node pekerja. Untuk mengetahui informasi selengkapnya tentang batasan pencadangan dan pemulihan dari bencana (disaster recovery), lihat Mencadangkan dan memulihkan cluster dengan bmctl.
Jika terjadi kegagalan node, terkadang Anda tidak dapat menjalankan perintah reset pada node jika node tidak dapat dijangkau. Anda mungkin perlu menghapus node dari cluster secara paksa.
Saat Anda mereset node secara bersih dan mengupdate cluster, tindakan berikut akan terjadi:
- Node akan direset, mirip dengan
kubeadm reset, dan mesin akan kembali ke status yang telah diinstal sebelumnya. - Referensi terkait ke node akan dihapus dari resource kustom cluster dan nodepool.
Dalam beberapa perintah bmctl berikut untuk mereset node, parameter --force menunjukkan apakah perintah reset (langkah 1) harus dilewati. Jika parameter --force digunakan, bmctl hanya akan melakukan langkah penghapusan (langkah 2), dan tidak menjalankan perintah reset.
Menghapus worker node
Untuk menghapus node pekerja dari cluster, selesaikan langkah-langkah berikut:
Coba reset node secara bersih. Setelah node direset, node akan dihapus dari cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIGGanti kode berikut:
COMMA_SEPARATED_IP: alamat IP node yang akan direset, seperti10.200.0.8,10.200.0.9.CLUSTER_NAME: nama cluster target yang berisi node yang gagal.ADMIN_KUBECONFIG: jalur ke filekubeconfigcluster admin.
Jika perintah ini berhasil, Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.
Jika langkah sebelumnya untuk mereset node gagal, hapus node dari cluster secara paksa. Penghapusan paksa ini akan melewati langkah sebelumnya yang menjalankan perintah reset dan hanya melakukan langkah untuk menghapus referensi terkait ke node dari resource kustom cluster dan nodepool:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --forceAnda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.
Jika Anda menghapus node dari cluster node secara paksa pada langkah sebelumnya, jalankan kembali perintah
bmctl resetuntuk mereset node:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Jika sistem operasi yang mendasarinya pada mesin rusak atau tidak dapat dipulihkan:
- Hapus drive penyimpanan lokal mesin.
- Instal sistem operasi Linux yang baru dan didukung, lalu konfigurasi prasyarat node yang dijelaskan dalam Persyaratan konfigurasi sistem operasi dan Prasyarat workstation dan node.
- Tambahkan kembali node yang berfungsi ke cluster dengan mengikuti Mengupdate cluster.
Menghapus satu node bidang kontrol
Prosesnya sama seperti untuk node pekerja. Untuk node bidang kontrol, bmctl juga membersihkan keanggotaan etcd.
Cluster akan berhenti berada dalam status ketersediaan tinggi (HA) setelah Anda menghapus node yang gagal. Untuk kembali ke status HA, tambahkan node yang berfungsi ke cluster.
Untuk menghapus node dari cluster, selesaikan langkah-langkah berikut:
Coba reset node secara bersih. Setelah node direset, node akan dihapus dari cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIGGanti nilai berikut:
COMMA_SEPARATED_IP: alamat IP node yang akan direset, seperti10.200.0.8,10.200.0.9.CLUSTER_NAME: nama cluster target yang berisi node yang gagal.ADMIN_KUBECONFIG: jalur ke filekubeconfigcluster admin.
Jika perintah ini berhasil, Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.
Jika langkah sebelumnya untuk mereset node gagal, Anda dapat menghapus node dari cluster secara paksa. Penghapusan paksa ini akan melewati langkah sebelumnya yang menjalankan perintah reset, dan hanya melakukan langkah untuk menghapus referensi terkait ke node dari resource kustom cluster dan nodepool:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --forceAnda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.
Jika Anda menghapus node dari cluster node secara paksa pada langkah sebelumnya, jalankan kembali perintah
bmctl resetuntuk mereset node:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Jika sistem operasi yang mendasarinya pada mesin rusak atau tidak dapat dipulihkan:
- Hapus drive penyimpanan lokal mesin.
- Instal sistem operasi Linux yang baru dan didukung, lalu konfigurasi prasyarat node yang dijelaskan dalam Persyaratan konfigurasi sistem operasi dan Prasyarat workstation dan node.
- Tambahkan kembali node yang berfungsi ke cluster dengan mengikuti Mengupdate cluster.
Mereset node saat bidang kontrol tidak dapat diakses
Anda dapat menjalankan perintah berikut untuk mengembalikan mesin ke status yang telah diinstal sebelumnya saat bidang kontrol cluster tidak dapat diakses:
bmctl reset nodes \
--addresses NODE_IP_ADDRESSES \
--ssh-private-key-path SSH_PRIVATE_KEY_PATH \
--login-user LOGIN_USER \
--gcr-service-account-key AR_SERVICE_ACCOUNT_KEY
Ganti kode berikut:
NODE_IP_ADDRESSES: daftar alamat IP node yang dipisahkan koma, satu untuk setiap node yang Anda reset.SSH_PRIVATE_KEY_PATH: jalur file kunci pribadi SSH.LOGIN_USER: nama pengguna yang digunakan untuk akses SUDO tanpa sandi ke mesin node. Kecuali jika Anda secara eksplisit menentukan nama pengguna non-root untuk akses node dalam konfigurasi cluster (nodeAccess.loginUser),rootakan digunakan.AR_SERVICE_ACCOUNT_KEY: jalur file kunci JSON akun layanan Artifact Registry.
Perintah ini tidak menghapus referensi ke node dari resource kustom cluster dan nodepool. Setelah memulihkan akses ke bidang kontrol cluster, Anda harus menghapus node dari cluster secara paksa jika ingin mempertahankan cluster.
Kehilangan kuorum di bidang kontrol HA
Jika terlalu banyak node bidang kontrol di cluster HA yang memasuki status gagal, cluster akan kehilangan kuorum dan menjadi tidak tersedia.
Saat Anda perlu memulihkan cluster pengelolaan, jangan berikan file kubeconfig dalam perintah reset. Jika Anda memberikan file kubeconfig untuk cluster pengelolaan, tindakan ini akan memaksa cluster baru untuk melakukan operasi reset. Saat Anda memulihkan cluster pengguna, berikan jalur ke file kubeconfig.
Untuk memulihkan cluster yang kehilangan kuorum, jalankan perintah berikut pada node yang berfungsi dan tersisa:
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]Ganti kode berikut:
CONTROL_PLANE_NODE: alamat IP node yang berfungsi dan tetap menjadi bagian dari cluster.CLUSTER_NAME: nama cluster target yang berisi node yang gagal.KUBECONFIG_FILE: jika memulihkan cluster pengguna, jalur ke filekubeconfigcluster pengguna.
Setelah memulihkan node yang gagal, jalankan perintah
bmctl resetuntuk mereset node:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]Ganti kode berikut:
COMMA_SEPARATED_IP: alamat IP node yang akan direset, seperti10.200.0.8,10.200.0.9.CLUSTER_NAME: nama cluster target yang berisi node yang gagal.KUBECONFIG_FILE: jalur ke filekubeconfigcluster admin.
Jika node yang gagal adalah bagian dari node pool load balancer, setelah node dipulihkan, node tersebut mungkin akan bersaing untuk mendapatkan alamat IP virtual bidang kontrol dan membuat cluster baru menjadi tidak stabil. Jalankan perintah reset terhadap node yang gagal sesegera mungkin setelah Anda memulihkan node.
Proses ini hanya menangani pemulihan dari bencana (disaster recovery) untuk deployment HA bidang kontrol 3 node. Proses ini tidak mendukung pemulihan untuk penyiapan HA dengan 5 node atau lebih.
Memperbaiki pemulihan OS image yang tidak disengaja
Jika node fisik dipulihkan dari cadangan atau snapshot image tingkat OS dan menyebabkan ketidakstabilan cluster, error konsensus etcd, atau konflik IP Dataplane V2, selesaikan langkah-langkah berikut untuk memulihkan kesehatan cluster:
- Segera putuskan koneksi atau matikan node yang terpengaruh untuk mencegah kerusakan status cluster lebih lanjut.
- Dari workstation admin, jalankan perintah
bmctl reset nodes --forceuntuk menghapus resource kustom node dari cluster. - Hapus drive fisik di mesin.
- Instal sistem operasi Linux dasar yang bersih dengan mengikuti Persyaratan konfigurasi sistem operasi.
- Tambahkan kembali node ke cluster dengan mengikuti Mengupdate cluster.
Langkah berikutnya
Untuk mengetahui informasi selengkapnya tentang cara menambahkan atau menghapus node dari cluster saat tidak ada kegagalan dan untuk memeriksa status node, lihat Mengupdate cluster.
Jika Anda memerlukan bantuan tambahan, hubungi Layanan Pelanggan Cloud. Anda juga dapat melihat Mendapatkan dukungan untuk mengetahui informasi selengkapnya tentang resource dukungan, termasuk hal berikut:
- Persyaratan untuk membuka kasus dukungan.
- Alat untuk membantu Anda memecahkan masalah, seperti konfigurasi lingkungan, log, dan metrik.
- Komponen yang didukung.