Pendeteksi Masalah Node

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} biasanya bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig. Namun, jika Anda menentukan ruang kerja Anda dengan tanda WORKSPACE_DIR, jalurnya adalah WORKSPACE_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:

  1. Edit file ConfigMap cluster yang dipanggil node-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 adalah WORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig).
    • CLUSTER_NAMESPACE: namespace cluster tempat Anda ingin mengaktifkan Node Problem Detector.
  2. Awalnya, node-problem-detector-config ConfigMap tidak memiliki Kolom data. Tambahkan kolom data 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 atau Events mana yang ingin dicari.
  • Menjalankan skrip pemantauan yang ditentukan pengguna.

Langkah selanjutnya