⎈ k8s knowledge compiler

Monitor Node Health [page]deterministic

tasks

*Node Problem Detector* is a daemon for monitoring and reporting about a node's health. You can run Node Problem Detector as a `DaemonSet` or as a standalone daemon. Node Problem Detector collects information about node problems from various daemons and reports these conditions to the API server as Node [Condition](/docs/concepts/architecture/nodes/#condition)s or as [Event](/docs/reference/kubernetes-api/cluster-resources/event-v1)s.

To learn how to install and use Node Problem Detector, see [Node Problem Detector project documentation](https://github.com/kubernetes/node-problem-detector).

##

## Limitations

* Node Problem Detector uses the kernel log format for reporting kernel issues. To learn how to extend the kernel log format, see [Add support for another log format](#support-other-log-format).

## Enabling Node Problem Detector

Some cloud providers enable Node Problem Detector as an [Addon](#gloss:addons). You can also enable Node Problem Detector with `kubectl` or by creating an Addon DaemonSet.

### Using kubectl to enable Node Problem Detector {#using-kubectl}

`kubectl` provides the most flexible management of Node Problem Detector. You can overwrite the default configuration to fit it into your environment or to detect customized node problems. For example:

1. Create a Node Problem Detector configuration similar to `node-problem-detector.yaml`:

> Note: You should verify that the system log directory is right for your operating system distribution.

1. Start node problem detector with `kubectl`:

```shell kubectl apply -f https://k8s.io/examples/debug/node-problem-detector.yaml ```

### Using an Addon pod to enable Node Problem Detector {#using-addon-pod}

If you are using a custom cluster bootstrap solution and don't need to overwrite the default configuration, you can leverage the Addon pod to further automate the deployment.

Create `node-problem-detector.yaml`, and save the configuration in the Addon pod's directory `/etc/kubernetes/addons/node-problem-detector` on a control plane node.

## Overwrite the configuration

The [default configuration](https://github.com/kubernetes/node-problem-detector/tree/v0.8.12/config) is embedded when building the Docker image of Node Problem Detector.

However, you can use a [`ConfigMap`](/docs/tasks/configure-pod-container/configure-pod-configmap/) to overwrite the configuration:

1. Change the configuration files in `config/` 1. Create the `ConfigMap` `node-problem-detector-config`:

```shell kubectl create configmap node-problem-detector-config --from-file=config/ ```

1. Change the `node-problem-detector.yaml` to use the `ConfigMap`:

1. Recreate the Node Problem Detector with the new configuration file:

```shell # If you have a node-problem-detector running, delete before recreating kubectl delete -f https://k8s.io/examples/debug/node-problem-detector.yaml kubectl apply -f https://k8s.io/examples/debug/node-problem-detector-configmap.yaml ```

> Note: This approach only applies to a Node Problem Detector started with `kubectl`.

Overwriting a configuration is not supported if a Node Problem Detector runs as a cluster Addon. The Addon manager does not support `ConfigMap`.

## Problem Daemons

A problem daemon is a sub-daemon of the Node Problem Detector. It monitors specific kinds of node problems and reports them to the Node Problem Detector. There are several types of supported problem daemons.

  • A `SystemLogMonitor` type of daemon monitors the system logs and reports problems and metrics according to predefined rules. You can customize the configurations for different log sources such as [filelog](https://github.com/kubernetes/node-problem-detector/blob/v0.8.12/config/kernel-monitor-filelog.json), [kmsg](https://github.com/kubernetes/node-problem-detector/blob/v0.8.12/config/kernel-monitor.json), [kernel](https://github.com/kubernetes/node-problem-detector/blob/v0.8.12/config/kernel-monito …(trimmed)

Sources

tasks/debug/debug-cluster/monitor-node-health.md · docMonitor Node Health

Related (13)

references Add-onsAddon conf=1
part_of {{% heading "prerequisites" %}}describes conf=1
part_of Limitationsdescribes conf=1
part_of Enabling Node Problem Detectordescribes conf=1
part_of Overwrite the configurationdescribes conf=1
part_of Problem Daemonsdescribes conf=1
part_of Exporterdescribes conf=1
part_of Recommendations and restrictionsdescribes conf=1
part_of Adding custom plugin monitorsdescribes conf=1
api_for Nodedocuments API object conf=1

← all Docs