Di Google Distributed Cloud, health check berkala dan node otomatis reparasi diaktifkan secara default.
Fitur perbaikan otomatis node terus mendeteksi dan memperbaiki node yang tidak responsif di cluster.
Health check berkala berjalan setiap lima belas menit. Pemeriksaan tersebut sama dengan
yang dibawakan oleh gkectl diagnose cluster
. Hasilnya ditampilkan sebagai
log dan peristiwa pada objek Cluster di cluster admin.
Pastikan bahwa admin dan cluster pengguna Anda masing-masing memiliki alamat IP tambahan yang tersedia untuk perbaikan node otomatis.
Kondisi node yang 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 konten berhasil.Status mesin tidak
Available
selama sekitar 30 menit setelah VM pembuatan konten.Tidak ada objek node (nodeRef adalah
nil
) yang sesuai dengan mesin di 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 ini menghabiskan node yang tidak responsif dan membuat VM baru. Jika node menghabiskan tidak berhasil selama satu jam, perbaikan akan memaksa saluran keluar dan melepaskan disk terkelola Kubernetes terpasang.
Jika ada beberapa node yang tidak responsif di MachineDeployment yang sama, perbaikan hanya dilakukan pada salah satu {i>node<i} tersebut pada satu waktu.
Jumlah reparasi 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
admin
atau
pengguna
file konfigurasi cluster, tetapkan autoRepair.enabled
ke true
:
autoRepair: enabled: true
Lanjutkan ke langkah-langkah untuk membuat admin atau pengguna .
Mengaktifkan perbaikan node dan health check untuk cluster pengguna yang ada
Di
file konfigurasi cluster pengguna,
setel 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
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 cluster admin Anda file konfigurasi Anda.
Melihat log dari health checker
Tampilkan daftar 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
Container 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
Tampilkan daftar 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 pada cluster tertentu, jalankan kubectl describe cluster
dengan
flag --show-events
. Misalnya, untuk melihat peristiwa untuk my-user-cluster
ditunjukkan 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
Di
file konfigurasi cluster pengguna,
setel 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
Melakukan debug perbaikan otomatis node
Anda dapat menyelidiki masalah terkait perbaikan otomatis node dengan menjelaskan Mesin dan Objek node di cluster admin. Berikut contohnya:
Tampilkan 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
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 perbaikan manual tidak bisa dilakukan.
Gunakan gkectl repair admin-master
untuk memperbaiki admin
{i>node<i} bidang kontrol.
Node bidang kontrol cluster pengguna Controlplane V2
Node bidang kontrol cluster pengguna Controlplane V2 dikelola secara berbeda dari node lain.
Mirip dengan cluster pengguna kubeception, bidang kontrol objek Machine dari Controlplane Cluster pengguna V2 berada di cluster admin. Perbaikan otomatis node tercakup oleh perbaikan otomatis node cluster admin.
Jika ada masalah node yang tidak tercakup oleh logika perbaikan otomatis node cluster admin, atau belum mengaktifkan perbaikan otomatis node cluster admin, Anda dapat melakukan perbaikan manual. Ini 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 admin Anda {i>kubeconfig<i}.USER_CLUSTER_NAME
: nama cluster pengguna target.
Tambahkan anotasi
repair
ke objek Mesin: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 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. Jika tidak, node akan menurunkan bidang kontrol secara tiba-tiba.
Node lainnya
Jika ada masalah {i>node<i} yang tidak tercakup oleh logika perbaikan otomatis, atau belum mengaktifkan perbaikan otomatis node, Anda dapat melakukan reparasi manual. Ini menghapus dan membuat ulang node.
Dapatkan nama objek Mesin yang sesuai dengan node:
kubectl --kubeconfig CLUSTER_KUBECONFIG get machines
Ganti CLUSTER_KUBECONFIG dengan jalur admin atau cluster pengguna Anda {i>kubeconfig<i}.
Tambahkan anotasi repair
ke objek Mesin:
kubectl annotate --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME onprem.cluster.gke.io/repair-machine=true
Ganti MACHINE_NAME dengan nama objek Mesin.
Hapus objek Mesin:
kubectl delete --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME