Library open source Node Problem Detector memungkinkan Anda memantau kondisi node dan mendeteksi masalah umum pada hardware, kernel, atau runtime container. Di Google Distributed Cloud, layanan ini berjalan sebagai layanan systemd di setiap node dan diaktifkan secara default di rilis 1.10.0 dan yang lebih baru. Di versi 1.32 dan yang lebih baru, Node Problem Detector juga dapat memperbaiki masalah node tertentu secara otomatis.
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care. Anda juga dapat melihat Mendapatkan dukungan untuk mengetahui informasi selengkapnya tentang referensi dukungan, termasuk referensi berikut:
- Persyaratan untuk membuka kasus dukungan.
- Alat untuk membantu Anda memecahkan masalah, seperti konfigurasi lingkungan, log, dan metrik.
- Komponen yang didukung.
Masalah apa yang dideteksi?
Node Problem Detector 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
Daemon 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
tetap dianggap cukup penting untuk dilaporkan.
Tabel berikut menjelaskan NodeConditions yang ditemukan oleh Node Problem Detector dan
apakah dapat diperbaiki secara otomatis atau tidak:
| Kondisi | Alasan | Perbaikan otomatis didukung1 |
|---|---|---|
KernelDeadlock |
Proses kernel macet saat menunggu proses kernel lain melepaskan resource yang diperlukan. | Tidak |
ReadonlyFilesystem |
Cluster tidak dapat menulis ke sistem file karena ada masalah, seperti disk penuh. | Tidak |
FrequentKubeletRestart |
Kubelet sering dimulai ulang, sehingga mencegah node menjalankan pod secara efektif. | Tidak |
FrequentDockerRestart |
Daemon Docker telah dimulai ulang lebih dari 5 kali dalam 20 menit. | Tidak |
FrequentContainerdRestart |
Runtime container telah dimulai ulang lebih dari 5 kali dalam 20 menit. | Tidak |
FrequentUnregisterNetDevice |
Node sering mengalami pembatalan pendaftaran perangkat jaringan. | Tidak |
CorruptDockerOverlay2 |
Ada masalah atau inkonsistensi sistem file dalam direktori driver penyimpanan overlay2 Docker. | Tidak |
OrphanContainers2 |
Pod khusus untuk container telah dihapus, tetapi container yang sesuai masih ada di node. | Tidak |
ContainerRuntimeUnhealthy |
Runtime container tidak berfungsi dengan benar, sehingga mencegah pod berjalan atau dijadwalkan pada node. | Ya |
FailedCgroupRemoval2 |
Beberapa cgroup dalam status dibekukan. | Ya |
KubeletUnhealthy |
Node tidak berfungsi dengan baik atau tidak merespons bidang kontrol. | Ya |
1 Untuk versi 1.32 dan yang lebih tinggi, kemampuan untuk memperbaiki masalah yang terdeteksi secara otomatis didukung untuk kondisi tertentu.
2 Didukung untuk versi 1.32 dan yang lebih baru.
Beberapa contoh jenis Events yang dilaporkan oleh Node Problem Detector 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.
Masalah apa yang diperbaiki?
Mulai versi 1.32, saat Node Problem Detector menemukan NodeConditions tertentu, alat ini dapat
otomatis memperbaiki masalah yang sesuai pada node. NodeConditions berikut mendukung perbaikan otomatis:
ContainerRuntimeUnhealthyFailedCgroupRemovalKubeletUnhealthy
Cara melihat masalah yang terdeteksi
Jalankan perintah kubectl describe berikut untuk mencari NodeConditions dan
Events:
kubectl describe node NODE_NAME \
--kubeconfig=KUBECONFIG
Ganti kode berikut:
NODE_NAME: nama node yang Anda periksa.KUBECONFIG: jalur file kubeconfig cluster.
Cara mengaktifkan dan menonaktifkan Node Problem Detector
Secara default, Node Problem Detector diaktifkan, tetapi dapat dinonaktifkan di resource ConfigMap node-problem-detector-config. Kecuali jika Anda menonaktifkannya secara eksplisit, Node Problem Detector akan terus memantau node untuk kondisi tertentu yang mengindikasikan masalah pada node.
Untuk menonaktifkan Node Problem Detector di cluster tertentu, gunakan langkah-langkah berikut:
Edit resource ConfigMap
node-problem-detector-config:kubectl edit configmap node-problem-detector-config \ --kubeconfig=KUBECONFIG \ --namespace=CLUSTER_NAMESPACEGanti kode berikut:
KUBECONFIG: jalur file kubeconfig cluster.CLUSTER_NAMESPACE: namespace cluster tempat Anda ingin mengaktifkan Node Problem Detector.
Perintah ini otomatis memulai editor teks tempat Anda dapat mengedit resource
node-problem-detector-config.Tetapkan
data.enabledkefalsedalam definisi resourcenode-problem-detector-config.apiVersion: v1 kind: ConfigMap metadata: creationTimestamp: "2025-04-19T21:36:44Z" name: node-problem-detector-config ... data: enabled: "false"Awalnya, ConfigMap
node-problem-detector-configtidak memiliki kolomdata, jadi Anda mungkin perlu menambahkannya.Untuk memperbarui resource, simpan perubahan Anda dan tutup editor.
Untuk mengaktifkan kembali Node Problem Detector, lakukan langkah-langkah sebelumnya, tetapi tetapkan data.enabled ke
true dalam definisi resource node-problem-detector-config.
Cara mengaktifkan dan menonaktifkan perbaikan otomatis
Mulai versi 1.32, Node Problem Detector memeriksa NodeConditions tertentu dan
secara otomatis memperbaiki masalah yang sesuai pada node. Secara default,
perbaikan otomatis diaktifkan untuk NodeConditions yang didukung, tetapi dapat
dinonaktifkan di resource ConfigMap node-problem-detector-config.
Untuk menonaktifkan perilaku perbaikan otomatis pada cluster tertentu, gunakan langkah-langkah berikut:
Edit resource ConfigMap
node-problem-detector-config:kubectl edit configmap node-problem-detector-config \ --kubeconfig=KUBECONFIG \ --namespace=CLUSTER_NAMESPACEGanti kode berikut:
KUBECONFIG: jalur file kubeconfig cluster.CLUSTER_NAMESPACE: namespace cluster tempat Anda ingin mengaktifkan Node Problem Detector.
Perintah ini otomatis memulai editor teks yang dapat Anda gunakan untuk mengedit resource
node-problem-detector-config.Tetapkan
data.check-onlyketruedalam definisi resourcenode-problem-detector-config.apiVersion: v1 kind: ConfigMap metadata: creationTimestamp: "2025-04-19T21:36:44Z" name: node-problem-detector-config ... data: enabled: "true" check-only: "true"Awalnya, ConfigMap
node-problem-detector-configtidak memiliki kolomdata, jadi Anda mungkin perlu menambahkannya. Menyetelcheck-onlyke"true"akan menonaktifkan perbaikan otomatis untuk semua kondisi yang didukung.Untuk memperbarui resource, simpan perubahan Anda dan tutup editor.
Untuk mengaktifkan kembali perbaikan otomatis untuk semua NodeConditions yang mendukungnya, tetapkan
data.check-only ke "false" di ConfigMap node-problem-detector-config.
Cara menghentikan dan memulai ulang Node Problem Detector
Node Problem Detector berjalan sebagai layanan systemd di setiap node. Untuk mengelola Node Problem Detector 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-detectorUntuk memulai ulang Node Problem Detector, jalankan perintah berikut:
systemctl restart node-problem-detectorUntuk 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 Node Problem Detector ke sistem pemantauan lain, seperti Cloud Monitoring atau Prometheus.
- Menyesuaikan
NodeConditionsatauEventsyang akan dicari. - Menjalankan skrip pemantauan yang ditentukan pengguna.
Langkah berikutnya
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care. Anda juga dapat melihat Mendapatkan dukungan untuk mengetahui informasi selengkapnya tentang referensi dukungan, termasuk referensi berikut:
- Persyaratan untuk membuka kasus dukungan.
- Alat untuk membantu Anda memecahkan masalah, seperti konfigurasi lingkungan, log, dan metrik.
- Komponen yang didukung.