Di Google Distributed Cloud, health check berkala dan perbaikan node otomatis diaktifkan secara default.
Fitur perbaikan otomatis node terus mendeteksi dan memperbaiki node yang tidak responsif dalam cluster.
Pemeriksaan kesehatan berkala berjalan setiap lima belas menit. Pemeriksaannya sama dengan
pemeriksaan yang dilakukan oleh gkectl diagnose cluster
. Hasilnya ditampilkan sebagai log dan peristiwa pada objek Cluster di cluster admin.
Pastikan cluster admin dan pengguna Anda masing-masing memiliki alamat IP tambahan yang tersedia untuk perbaikan node otomatis.
Kondisi node yang tidak responsif
Kondisi berikut adalah indikasi bahwa node tidak responsif:
Kondisi node
NotReady
adalahtrue
selama sekitar 10 menit.Status mesin adalah
Unavailable
selama sekitar 10 menit setelah pembuatan berhasil.Status mesin bukan
Available
selama sekitar 30 menit setelah pembuatan VM.Tidak ada objek node (nodeRef adalah
nil
) yang sesuai dengan mesin dalam statusAvailable
selama sekitar 10 menit.Kondisi node
DiskPressure
adalahtrue
selama sekitar 30 menit.
Strategi perbaikan node
Google Distributed Cloud memulai perbaikan pada node jika node memenuhi setidaknya salah satu kondisi dalam daftar sebelumnya.
Perbaikan akan menghabiskan node yang tidak sehat dan membuat VM baru. Jika pengosongan node tidak berhasil selama satu jam, perbaikan akan memaksa pengosongan dan melepaskan disk terkelola Kubernetes yang terpasang dengan aman.
Jika ada beberapa node yang tidak responsif di MachineDeployment yang sama, perbaikan hanya dilakukan pada satu node tersebut dalam satu waktu.
Jumlah perbaikan per jam untuk kumpulan node dibatasi hingga maksimum:
- Tiga
- Sepuluh persen dari jumlah node di node pool
Mengaktifkan perbaikan node dan pemeriksaan status untuk cluster baru
Di file konfigurasi cluster
admin
atau
user, tetapkan autoRepair.enabled
ke true
:
autoRepair: enabled: true
Lanjutkan dengan langkah-langkah untuk membuat cluster admin atau pengguna.
Mengaktifkan perbaikan node dan pemeriksaan kondisi untuk cluster pengguna yang ada
Di
file konfigurasi cluster pengguna,
tetapkan autoRepair.enabled
ke true
:
Update cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin Anda
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Mengaktifkan perbaikan node dan pemeriksaan kondisi untuk cluster admin yang ada
Di
file konfigurasi cluster admin, tetapkan autoRepair.enabled
ke true
:
Update cluster:
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
Ganti ADMIN_CLUSTER_CONFIG dengan jalur file konfigurasi cluster admin Anda.
Melihat log dari pemeriksa kesehatan
Cantumkan semua Pod pemeriksa kesehatan di cluster admin:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods --all-namespaces | grep cluster-health-controller
Outputnya mirip dengan ini:
kube-system cluster-health-controller-6c7df455cf-zlfh7 2/2 Running my-user-cluster cluster-health-controller-5d5545bb75-rtz7c 2/2 Running
Untuk melihat log dari pemeriksa kondisi tertentu, dapatkan log untuk penampung cluster-health-controller
di salah satu Pod. Misalnya, untuk mendapatkan log untuk my-user-cluster
yang ditampilkan dalam output sebelumnya:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG --namespace my-user-cluster logs \ cluster-health-controller-5d5545bb75-rtz7c cluster-health-controller
Melihat peristiwa dari pemeriksa kesehatan
Cantumkan semua objek Cluster di cluster admin Anda:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get clusters --all-namespaces
Outputnya mirip dengan ini:
default gke-admin-ldxh7 2d15h my-user-cluster my-user-cluster 2d12h
Untuk melihat peristiwa untuk cluster tertentu, jalankan kubectl describe cluster
dengan
flag --show-events
. Misalnya, untuk melihat peristiwa my-user-cluster
yang ditampilkan dalam output sebelumnya:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG --namespace my-user-cluster \ describe --show-events cluster my-user-cluster
Contoh output:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ValidationFailure 17s cluster-health-periodics-controller validator for Pod returned with status: FAILURE, reason: 1 pod error(s).
Menonaktifkan perbaikan node dan pemeriksaan status untuk cluster pengguna
Di
file konfigurasi cluster pengguna,
tetapkan autoRepair.enabled
ke false
:
Update cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Menonaktifkan perbaikan node dan health check untuk cluster admin
Di
file konfigurasi cluster admin, tetapkan autoRepair.enabled
ke false
:
Update cluster:
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
Men-debug perbaikan otomatis node
Anda dapat menyelidiki masalah pada perbaikan otomatis node dengan mendeskripsikan objek Mesin dan Node di cluster admin. Berikut contohnya:
Buat daftar objek mesin:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines
Contoh output:
default gke-admin-master-wcbrj default gke-admin-node-7458969ff8-5cg8d default gke-admin-node-7458969ff8-svqj7 default xxxxxx-user-cluster-41-25j8d-567f9c848f-fwjqt
Jelaskan salah satu objek Machine:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machine gke-admin-master-wcbrj
Dalam output, cari peristiwa dari cluster-health-controller
.
Demikian pula, Anda dapat mencantumkan dan mendeskripsikan objek node. Contoh:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes ... kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe node gke-admin-master-wcbrj
Perbaikan node manual
Node bidang kontrol admin
Node bidang kontrol admin memiliki perintah perbaikan khusus, karena perbaikan manual normal tidak berfungsi untuk node tersebut.
Gunakan gkectl repair admin-master
untuk memperbaiki node
bidang kontrol admin.
Node bidang kontrol cluster pengguna Controlplane V2
Node bidang kontrol cluster pengguna Controlplane V2 dikelola secara berbeda dari node lainnya.
Serupa dengan cluster pengguna kubeception, objek Mesin bidang kontrol dari cluster pengguna Controlplane V2 berada di cluster admin. Selain itu, perbaikan otomatis node tercakup dalam perbaikan otomatis node cluster admin.
Jika ada masalah node yang tidak tercakup dalam logika perbaikan otomatis node cluster admin, atau Anda belum mengaktifkan perbaikan otomatis node cluster admin, Anda dapat melakukan perbaikan manual. Tindakan ini akan menghapus dan membuat ulang node.
Dapatkan nama objek Machine yang sesuai dengan node:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME get machines
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur file kubeconfig admin Anda.USER_CLUSTER_NAME
: nama cluster pengguna target.
Tambahkan anotasi
repair
ke objek Machine:kubectl annotate --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME machine MACHINE_NAME onprem.cluster.gke.io/repair-machine=true
Ganti
MACHINE_NAME
dengan nama objek Mesin.Hapus objek Mesin:
kubectl delete --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME machine MACHINE_NAME
Buat ulang node satu per satu untuk bidang kontrol HA, atau node tersebut dapat menonaktifkan bidang kontrol secara tidak terduga.
Node lainnya
Jika ada masalah node yang tidak tercakup dalam logika perbaikan otomatis, atau Anda belum mengaktifkan perbaikan otomatis node, Anda dapat melakukan perbaikan manual. Tindakan ini akan menghapus dan membuat ulang node.
Dapatkan nama objek Machine yang sesuai dengan node:
kubectl --kubeconfig CLUSTER_KUBECONFIG get machines
Ganti CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster admin atau pengguna Anda.
Tambahkan anotasi repair
ke objek Machine:
kubectl annotate --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME onprem.cluster.gke.io/repair-machine=true
Ganti MACHINE_NAME dengan nama objek Machine.
Hapus objek Mesin:
kubectl delete --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME