Mereset node yang gagal di GKE di Bare Metal

Jika node di GKE pada Bare Metal gagal, seperti karena kesalahan konfigurasi OS, jaringan, atau penyimpanan, Anda perlu memulihkan kondisi cluster secara efisien. Setelah memulihkan kondisi 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 perlu.

Jika ingin menambahkan atau menghapus node dari cluster dalam keadaan normal ketika node belum gagal, lihat Mengupdate cluster.

Ringkasan

Saat 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 rapi dan mengupdate cluster, tindakan berikut akan terjadi:

  1. Node direset, mirip dengan kubeadm reset, dan mesin akan kembali ke status prainstal.
  2. Referensi terkait ke node dihapus dari resource kustom node dan cluster.

Node pekerja

Untuk menghapus node dari cluster, coba hapus node tersebut terlebih dahulu:

  1. Coba reset node hingga bersih. Setelah node direset, node tersebut 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, seperti 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: nama cluster target yang berisi node yang gagal.
    • ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.

    Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.

  2. Jika langkah sebelumnya untuk mereset node gagal, Anda dapat menghapus node secara paksa dari cluster. Penghapusan paksa ini akan melewatkan 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 \
     --force
    

    Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.

  3. 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
    

Kegagalan node bidang kontrol tunggal

Prosesnya sama seperti proses untuk node pekerja. Untuk node bidang kontrol, bmctl juga menghapus keanggotaan etcd.

Untuk menghapus node dari cluster, coba hapus node tersebut terlebih dahulu:

  1. Coba reset node hingga bersih. Setelah node direset, node tersebut 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, seperti 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: nama cluster target yang berisi node yang gagal.
    • ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.

    Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal. Lewati langkah-langkah yang tersisa di bagian ini.

  2. Jika langkah sebelumnya untuk mereset node gagal, Anda dapat menghapus node secara paksa dari cluster. Penghapusan paksa ini akan melewatkan 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 \
      --force
    

    Anda kini dapat mendiagnosis node dan memperbaiki kesalahan konfigurasi yang menyebabkan kegagalan awal.

  3. 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
    

Kuorum hilang di bidang kontrol HA

Jika terlalu banyak node bidang kontrol di cluster HA memasuki status gagal, cluster akan kehilangan kuorum dan menjadi tidak tersedia.

  1. Untuk memulihkan cluster yang telah kehilangan kuorum, jalankan perintah berikut pada node responsif yang tersisa:

    bmctl restore --control-plane-node CONTROL_PLANE_NODE \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    Ganti nilai berikut:

    • CONTROL_PLANE_NODE: alamat IP node responsif yang tetap menjadi bagian dari cluster.
    • CLUSTER_NAME: nama cluster target yang berisi node yang gagal.
    • KUBECONFIG_FILE: jika memulihkan cluster pengguna, jalur ke file kubeconfig cluster pengguna.
  2. Setelah 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 nilai berikut:

    • COMMA_SEPARATED_IP: Alamat IP node yang akan direset, seperti 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: nama cluster target yang berisi node yang gagal.
    • KUBECONFIG_FILE: jalur ke file kubeconfig cluster admin.

    Jika node yang gagal adalah bagian dari nodepool load balancer, setelah node dipulihkan, node tersebut mungkin bersaing untuk 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.

Langkah selanjutnya

Untuk mengetahui informasi selengkapnya tentang cara menambahkan atau menghapus node dari cluster saat tidak ada kegagalan dan memeriksa status node, baca Mengupdate cluster.