Node Problem Detector adalah library open source yang memantau kondisi node dan mendeteksi masalah node umum, seperti masalah hardware, kernel, atau runtime penampung. Di Google Distributed Cloud, layanan ini berjalan sebagai layanan systemd di setiap node.
Mulai rilis Google Distributed Cloud 1.10.0, Node Problem Detector diaktifkan secara default.
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.Masalah apa yang dideteksinya?
Pendeteksi masalah node dapat mendeteksi jenis masalah berikut:
- Masalah runtime container, seperti daemon runtime yang tidak responsif
- Masalah hardware, seperti kegagalan CPU, memori, atau disk
- Masalah kernel, seperti kondisi deadlock kernel atau sistem file yang rusak
Fitur ini berjalan di node dan melaporkan masalah ke server Kubernetes API
sebagai NodeCondition
atau sebagai Event
.
(NodeCondition
adalah masalah yang membuat node tidak dapat menjalankan pod, sedangkan
Event
adalah masalah sementara yang memiliki efek terbatas pada pod, tetapi
masih dianggap cukup penting untuk dilaporkan).
Beberapa NodeConditions
yang ditemukan oleh Pendeteksi Masalah Node adalah:
KernelDeadlock
ReadonlyFilesystem
FrequentKubeletRestart
FrequentDockerRestart
FrequentContainerdRestart
FrequentUnregisterNetDevice
KubeletUnhealthy
ContainerRuntimeUnhealthy
CorruptDockerOverlay2
Beberapa contoh jenis Events
yang dilaporkan oleh Pendeteksi Masalah Node adalah:
Warning TaskHung node/vm-worker-1-user-a12fabb4a99cb92-ddfce8832fd90f6f.lab.anthos kernel: task docker:7 blocked for more than 300 seconds.
Warning KernelOops node/vm-worker-1-user-a12fabb4a99cb92-ddfce8832fd90f6f.lab.anthos kernel: BUG: unable to handle kernel NULL pointer dereference at 00x0.
Cara melihat masalah yang terdeteksi
Jalankan perintah kubectl describe
berikut di node untuk mencari
NodeConditions
dan Events
:
kubectl --kubeconfig=KUBECONFIG_PATH describe node NODE_NAME
Dalam perintah, ganti entri berikut dengan informasi khusus untuk lingkungan Anda:
KUBECONFIG_PATH
: jalur ke file kubeconfig cluster target. (Jalur ke file kubeconfig biasanyabmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Namun, jika Anda menentukan ruang kerja dengan flag WORKSPACE_DIR, jalurnya adalahWORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
).NODE_NAME
: nama node yang ingin Anda ketahui informasi kesehatannya.
Cara mengaktifkan/menonaktifkan Pendeteksi Masalah Node
Berikut adalah langkah-langkah yang harus dilakukan untuk mengaktifkan Pendeteksi Masalah Node di cluster tertentu:
Edit file
ConfigMap
cluster yang disebutnode-problem-detector-config
kubectl --kubeconfig=KUBECONFIG_PATH edit configmap \ node-problem-detector-config --namespace=CLUSTER_NAMESPACE
Perintah ini akan otomatis memulai editor teks (seperti vim atau nano) tempat Anda dapat mengedit file
node-problem-detector-config
. Dalam perintah, ganti entri berikut dengan informasi khusus untuk lingkungan cluster Anda:- KUBECONFIG_PATH: jalur ke file kubeconfig cluster admin. (Jalur ke file kubeconfig biasanya
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Namun, jika Anda menentukan ruang kerja dengan flag WORKSPACE_DIR, jalurnya adalahWORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
). - CLUSTER_NAMESPACE: namespace cluster tempat Anda ingin mengaktifkan Node Problem Detector.
- KUBECONFIG_PATH: jalur ke file kubeconfig cluster admin. (Jalur ke file kubeconfig biasanya
Awalnya,
node-problem-detector-config
ConfigMap
tidak memiliki kolomdata
. Tambahkan kolomdata
ke peta konfigurasi dengan pasangan nilai kunci berikut:data: enabled: "true"
Untuk menonaktifkan Node Problem Detector di namespace cluster, lakukan langkah-langkah sebelumnya
1 dan 2, tetapi pada langkah 2, ubah nilai kunci enabled
menjadi
'false'.
Cara menghentikan/memulai Pendeteksi Masalah Node
Pendeteksi Masalah Node berjalan sebagai layanan systemd
di setiap node. Untuk mengelola Pendeteksi Masalah Node untuk node tertentu, gunakan SSH untuk mengakses node, dan jalankan perintah systemctl
berikut.
Untuk menonaktifkan Node Problem Detector, jalankan perintah berikut:
systemctl stop node-problem-detector
Untuk memulai ulang Node Problem Detector, jalankan perintah berikut:
systemctl restart node-problem-detector
Untuk memeriksa apakah Node Problem Detector berjalan di node tertentu, jalankan perintah berikut:
systemctl is-active node-problem-detector
Fitur yang tidak didukung
Google Distributed Cloud tidak mendukung penyesuaian Node Problem Detector berikut:
- Mengekspor laporan Pendeteksi Masalah Node ke sistem pemantauan lainnya, seperti Stackdriver atau Prometheus.
- Menyesuaikan
NodeConditions
atauEvents
yang akan dicari. - Menjalankan skrip pemantauan yang ditentukan pengguna.
Langkah selanjutnya
- Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.