Saat node di Google Distributed Cloud gagal, yang dapat terjadi karena masalah konfigurasi penyimpanan, jaringan, atau OS yang salah, 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 belum gagal, lihat Memperbarui cluster.
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.
Mereset node
Jika terjadi kegagalan node, terkadang Anda tidak dapat menjalankan perintah reset pada node karena node mungkin tidak dapat dijangkau. Anda mungkin perlu menghapus node secara paksa dari cluster.
Saat Anda mereset node dengan bersih dan mengupdate cluster, tindakan berikut akan terjadi:
- Node direset, mirip dengan
kubeadm reset
, dan mesin kembali ke status yang telah diinstal sebelumnya. - Referensi terkait ke node akan dihapus dari resource kustom nodepool dan cluster.
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 node pekerja
Untuk menghapus node pekerja dari cluster, selesaikan langkah-langkah berikut:
Coba reset node dengan benar. Setelah direset, node akan dihapus dari cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
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.ADMIN_KUBECONFIG
: jalur ke filekubeconfig
cluster admin.
Jika perintah ini berhasil, Anda kini dapat mendiagnosis node dan memperbaiki konfigurasi yang salah yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.
Jika langkah sebelumnya untuk mereset node gagal, hapus node secara paksa dari cluster. Penghapusan paksa ini akan melewati langkah sebelumnya yang menjalankan perintah reset tersebut dan hanya melakukan langkah untuk menghapus referensi terkait ke node dari nodepool dan resource kustom cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Sekarang Anda dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.
Jika Anda menghapus node secara paksa dari cluster node pada langkah sebelumnya, jalankan kembali perintah
bmctl reset
untuk mereset node:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Menghapus satu node bidang kontrol
Prosesnya sama dengan node pekerja. Untuk node bidang kontrol, bmctl
juga membersihkan keanggotaan etcd
.
Cluster berhenti berada dalam status ketersediaan tinggi (HA) setelah Anda menghapus node yang gagal. Untuk kembali ke status HA, tambahkan node yang sehat ke cluster.
Untuk menghapus node dari cluster, selesaikan langkah-langkah berikut:
Coba reset node dengan benar. Setelah direset, node akan dihapus dari cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Ganti 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 filekubeconfig
cluster admin.
Jika perintah ini berhasil, Anda kini dapat mendiagnosis node dan memperbaiki konfigurasi yang salah yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.
Jika langkah sebelumnya untuk mereset node gagal, Anda dapat menghapus node secara paksa dari cluster. Penghapusan paksa ini akan melewati langkah sebelumnya yang menjalankan perintah reset tersebut, dan hanya melakukan langkah untuk menghapus referensi terkait ke node dari nodepool dan resource kustom cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Sekarang Anda dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.
Jika Anda menghapus node secara paksa dari cluster node pada langkah sebelumnya, jalankan kembali perintah
bmctl reset
untuk mereset node:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Mereset node saat panel kontrol tidak dapat diakses
Anda dapat menjalankan perintah berikut untuk mengembalikan mesin ke status yang telah diinstal sebelumnya saat panel 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 GCR_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
),root
akan digunakan.GCR_SERVICE_ACCOUNT_KEY
: jalur file kunci JSON akun layanan Container Registry.
Perintah ini tidak menghapus referensi ke node dari resource kustom nodepool dan cluster. Setelah memulihkan akses ke bidang kontrol cluster, Anda harus menghapus node secara paksa dari cluster jika ingin mempertahankan cluster.
Kuorum hilang di bidang kontrol HA
Jika terlalu banyak node bidang kontrol di cluster HA yang memasuki status gagal, cluster akan kehilangan kuorum dan tidak tersedia.
Jika Anda perlu memulihkan cluster pengelolaan, jangan berikan file kubeconfig
dalam perintah reset. Jika Anda memberikan file kubeconfig
untuk cluster manajemen, tindakan ini akan memaksa cluster baru untuk melakukan operasi reset. Saat Anda memulihkan cluster pengguna, berikan jalur ke file kubeconfig
.
Untuk memulihkan cluster yang telah kehilangan kuorum, jalankan perintah berikut di node yang masih sehat:
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Ganti kode berikut:
CONTROL_PLANE_NODE
: alamat IP node yang sehat yang tetap menjadi bagian dari cluster.CLUSTER_NAME
: nama cluster target yang berisi node yang gagal.KUBECONFIG_FILE
: jika memulihkan cluster pengguna, jalur ke filekubeconfig
cluster pengguna.
Setelah Anda memulihkan node yang gagal, jalankan perintah
bmctl reset
untuk 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 filekubeconfig
cluster admin.
Jika node yang gagal adalah bagian dari node pool load balancer, setelah node pulih, node tersebut mungkin akan bersaing untuk mendapatkan alamat IP virtual bidang kontrol dan membuat cluster baru menjadi tidak stabil. Jalankan perintah reset pada node yang gagal sesegera mungkin setelah Anda memulihkan node.
Proses ini hanya menangani pemulihan dari bencana untuk deployment HA bidang kontrol 3 node. Proses ini tidak mendukung pemulihan untuk penyiapan HA dengan 5 node atau lebih.
Langkah selanjutnya
Untuk mengetahui informasi selengkapnya tentang cara menambahkan atau menghapus node dari cluster saat tidak ada kegagalan dan memeriksa status node, lihat Memperbarui cluster.
<>