Pendeteksi Masalah Node adalah {i>library <i}open source yang memantau kondisi node dan mendeteksi masalah {i>node<i}, seperti masalah perangkat keras, {i>kernel<i} atau kontainer. Di beberapa Google {i>Distributed Cloud<i}, berjalan sebagai systemd di setiap node.
Dimulai dengan rilis Google Distributed Cloud 1.10.0, Node Problem Detector diaktifkan secara {i>default<i}.
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 {i>kernel<i}, seperti kondisi deadlock {i>kernel<i} atau sistem file yang rusak
Pengujian ini berjalan pada node dan melaporkan masalah ke Kubernetes API
server 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
namun dianggap cukup penting untuk dilaporkan).
Beberapa NodeConditions
yang ditemukan oleh Detektor Masalah Node adalah:
KernelDeadlock
ReadonlyFilesystem
FrequentKubeletRestart
FrequentDockerRestart
FrequentContainerdRestart
FrequentUnregisterNetDevice
KubeletUnhealthy
ContainerRuntimeUnhealthy
CorruptDockerOverlay2
Beberapa contoh jenis Events
yang dilaporkan oleh Detektor 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 pada node untuk mencari
NodeConditions
dan Events
:
kubectl --kubeconfig=KUBECONFIG_PATH describe node NODE_NAME
Pada perintah, ganti entri berikut dengan informasi yang khusus untuk lingkungan Anda:
KUBECONFIG_PATH
: jalur ke cluster target {i>kubeconfig<i}. (Jalur ke file {i> kubeconfig<i} biasanyabmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Namun, jika Anda menentukan ruang kerja Anda dengan tanda WORKSPACE_DIR, jalurnya adalahWORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
).NODE_NAME
: nama node yang Anda inginkan informasi kesehatan.
Cara mengaktifkan/menonaktifkan Detektor Masalah Node
Berikut adalah langkah-langkah yang harus dilakukan untuk mengaktifkan Detektor Masalah Node pada cluster tertentu:
Edit file
ConfigMap
cluster yang dipanggilnode-problem-detector-config
kubectl --kubeconfig=KUBECONFIG_PATH edit configmap \ node-problem-detector-config --namespace=CLUSTER_NAMESPACE
Perintah ini secara otomatis memulai editor teks (seperti {i>vim<i} atau {i>nano<i}) di Anda dapat mengedit file
node-problem-detector-config
. Di kolom ganti entri berikut dengan informasi yang spesifik untuk lingkungan cluster:- KUBECONFIG_PATH: jalur ke kubeconfig cluster admin
. (Jalur ke file {i>
kubeconfig<i} biasanya
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Namun, jika Anda menentukan ruang kerja Anda dengan tanda 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 kubeconfig cluster admin
. (Jalur ke file {i>
kubeconfig<i} biasanya
Awalnya,
node-problem-detector-config
ConfigMap
tidak memiliki Kolomdata
. Tambahkan kolomdata
ke peta konfigurasi dengan hal berikut pasangan nilai kunci:data: enabled: "true"
Untuk menonaktifkan Detektor Masalah Node di namespace cluster, lakukan langkah sebelumnya
langkah 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
pada setiap node. Untuk mengelola Detektor Masalah Node untuk node tertentu, gunakan SSH untuk mengakses node, dan jalankan perintah systemctl
berikut.
Untuk menonaktifkan Detektor Masalah Node, 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 pada node tertentu, jalankan perintah berikut:
systemctl is-active node-problem-detector
Fitur yang tidak didukung
Google Distributed Cloud tidak mendukung penyesuaian Masalah Node berikut Pendeteksi:
- Mengekspor laporan Detektor Masalah Node ke sistem pemantauan lain, seperti Stackdriver atau Prometheus.
- Menyesuaikan
NodeConditions
atauEvents
mana yang ingin dicari. - Menjalankan skrip pemantauan yang ditentukan pengguna.
Langkah selanjutnya
- Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.