Di GKE di VMware, health check berkala dan perbaikan node otomatis diaktifkan secara default.
Fitur perbaikan otomatis node terus-menerus mendeteksi dan memperbaiki node yang tidak responsif di cluster.
Health check berkala berjalan setiap lima belas menit. Pemeriksaan ini sama dengan
pemeriksaan yang dilakukan oleh gkectl diagnose cluster
. Hasilnya akan 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 tidak responsif
Kondisi berikut merupakan 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
GKE di VMware memulai perbaikan pada node jika node memenuhi setidaknya salah satu kondisi dalam daftar sebelumnya.
Perbaikan ini menguras node yang tidak responsif dan membuat VM baru. Jika pengosongan node tidak berhasil selama satu jam, tim perbaikan akan memaksa pengosongan dan dengan aman melepaskan disk terkelola Kubernetes yang terpasang.
Jika ada beberapa node yang tidak responsif di MachineDeployment yang sama, perbaikan hanya akan dilakukan pada satu node tersebut dalam satu waktu.
Jumlah perbaikan per jam untuk kumpulan node dibatasi hingga maksimum:
- Tiga
- Sepuluh persen dari jumlah node dalam kumpulan node
Mengaktifkan perbaikan node dan health check untuk cluster baru
Di file konfigurasi cluster admin atau pengguna, tetapkan autoRepair.enabled
ke true
:
autoRepair: enabled: true
Lanjutkan dengan langkah-langkah untuk membuat cluster admin atau pengguna.
Mengaktifkan perbaikan node dan health check untuk cluster pengguna yang ada
Dalam
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 health check untuk cluster admin yang ada
Dalam
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 health checker
Cantumkan semua Pod health checker 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 health checker 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 health checker
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 untuk 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 health check untuk cluster pengguna
Dalam
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
Dalam
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 terkait perbaikan otomatis node dengan menjelaskan 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 Mesin:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machine gke-admin-master-wcbrj
Pada output, cari peristiwa dari cluster-health-controller
.
Demikian pula, Anda dapat mencantumkan dan menjelaskan 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 reparasi manual normal tidak berfungsi untuknya.
Menggunakan 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 lain.
Serupa dengan cluster pengguna kubeception, objek Mesin bidang kontrol dari cluster pengguna Controlplane V2 berada di cluster admin. Dan perbaikan otomatis {i>node<i} dicakup oleh perbaikan otomatis {i>node<i} cluster admin.
Jika ada masalah node yang tidak tercakup oleh 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 Mesin 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 Machine:
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 mungkin akan menurunkan bidang kontrol secara tiba-tiba.
Node lainnya
Jika ada masalah node yang tidak tercakup oleh 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 Mesin yang sesuai dengan node:
kubectl --kubeconfig CLUSTER_KUBECONFIG get machines
Ganti CLUSTER_KUBECONFIG dengan jalur file kubeconfig 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 Mesin.
Hapus objek Machine:
kubectl delete --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME