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 kondisi berkala dijalankan setiap lima belas menit. Pemeriksaan sama dengan
yang dilakukan oleh gkectl diagnose cluster
. Hasilnya ditampilkan sebagai log
dan peristiwa pada objek Cluster di cluster admin.
Pastikan setiap cluster admin dan pengguna Anda memiliki alamat IP tambahan yang tersedia untuk perbaikan node otomatis.
Jika cluster lanjutan diaktifkan, health check berkala tidak dijalankan sebagai bagian dari perbaikan otomatis.
Kondisi node tidak sehat saat cluster lanjutan tidak diaktifkan
Kondisi berikut adalah indikasi bahwa node tidak sehat
jika
enableAdvanceCluster
adalah false
.
Kondisi node
NotReady
adalahtrue
selama sekitar 10 menit.Status mesin adalah
Unavailable
selama sekitar 10 menit setelah pembuatan berhasil.Status mesin tidak
Available
selama sekitar 30 menit setelah VM dibuat.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.
Kondisi node tidak sehat saat cluster lanjutan diaktifkan
Kondisi berikut adalah indikasi bahwa node tidak responsif saat
enableAdvanceCluster
adalah true
.
Kondisi node
NotReady
adalahtrue
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 satu kondisi dalam daftar sebelumnya.
Perbaikan akan menguras node yang tidak sehat dan membuat VM baru. Jika pengurasan node tidak berhasil selama satu jam, perbaikan akan memaksa pengurasan dan melepaskan disk terkelola Kubernetes yang terpasang dengan aman.
Jika ada beberapa node yang tidak responsif dalam MachineDeployment yang sama, perbaikan dilakukan hanya pada salah 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 kondisi 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 pemeriksaan kondisi untuk cluster pengguna yang sudah 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 kondisi
Mencantumkan semua Pod pemeriksa kondisi 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 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 pemeriksa kondisi
Mencantumkan 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 pemeriksaan kondisi 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 pemeriksaan kondisi 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 saat cluster lanjutan tidak diaktifkan
Anda dapat menyelidiki masalah pada perbaikan otomatis node dengan menjelaskan objek Machine 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
Di 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
Men-debug perbaikan otomatis node saat cluster lanjutan diaktifkan
Anda dapat menyelidiki masalah perbaikan otomatis node dengan menjelaskan objek Machine dan Node di cluster admin dan cluster yang sesuai. Berikut contohnya:
Buat daftar objek mesin:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines
Contoh output:
NAMESPACE NAME NODEPOOL ci-1f6861fe28cac8fb390bc798927c717b 10.251.172.47 ci-1f6861fe28cac8fb390bc798927c717b-np ci-1f6861fe28cac8fb390bc798927c717b 10.251.173.64 ci-1f6861fe28cac8fb390bc798927c717b-cp ci-1f6861fe28cac8fb390bc798927c717b 10.251.173.66 ci-1f6861fe28cac8fb390bc798927c717b-cp ci-1f6861fe28cac8fb390bc798927c717b 10.251.174.19 ci-1f6861fe28cac8fb390bc798927c717b-np ci-1f6861fe28cac8fb390bc798927c717b 10.251.175.15 ci-1f6861fe28cac8fb390bc798927c717b-np ci-1f6861fe28cac8fb390bc798927c717b 10.251.175.30 ci-1f6861fe28cac8fb390bc798927c717b-cp kube-system 10.251.172.239 gke-admin-bnbp9-cp kube-system 10.251.173.39 gke-admin-bnbp9-cp kube-system 10.251.173.6 gke-admin-bnbp9-cp
Jelaskan mesin yang sesuai dengan objek Machine:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machine -n ci-1f6861fe28cac8fb390bc798927c717b 10.251.172.47
Di output, cari peristiwa dari auto-repair-controller
.
Demikian pula, Anda dapat mencantumkan dan mendeskripsikan objek node. Contoh:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes ... kubectl --kubeconfig USER_CLUSTER_KUBECONFIG describe node ci-1f6861fe28cac8fb390bc798927c717b-np
Perbaikan node manual saat cluster lanjutan tidak diaktifkan
Node bidang kontrol admin
Node bidang kontrol admin memiliki perintah perbaikan khusus, karena perbaikan manual biasa tidak berfungsi untuknya.
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.
Mirip dengan cluster pengguna kubeception, objek Machine bidang kontrol dari cluster pengguna Controlplane V2 berada di cluster admin. Selain itu, perbaikan otomatis node dicakup oleh perbaikan otomatis node 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 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 cluster 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 Machine.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 bidang kontrol dapat berhenti berfungsi secara tidak terduga.
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 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 Machine:
kubectl delete --kubeconfig CLUSTER_KUBECONFIG machine MACHINE_NAME
Perbaikan node manual saat cluster lanjutan diaktifkan
Node bidang kontrol admin
Perbaikan manual node bidang kontrol admin tidak didukung
Node bidang kontrol cluster pengguna / Worker Node
Dapatkan nama objek Inventory Machine yang sesuai dengan node menggunakan IP node untuk mencocokkan objek:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME get inventorymachines
Ganti kode berikut: ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig admin Anda. USER_CLUSTER_NAME: nama cluster pengguna target.
Tambahkan anotasi force-remove
ke objek Inventory Machine:
kubectl annotate --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME inventorymachine MACHINE_NAME baremetal.cluster.gke.io/force-remove=true
Ganti MACHINE_NAME dengan nama objek Machine.
Hapus objek Inventory Machine:
kubectl delete --kubeconfig ADMIN_CLUSTER_KUBECONFIG -n USER_CLUSTER_NAME inventorymachine MACHINE_NAME
Buat ulang node satu per satu untuk bidang kontrol HA, atau bidang kontrol dapat berhenti berfungsi secara tidak terduga.