From b2763f1e1515b81199d0a55b855aecb91600e2d2 Mon Sep 17 00:00:00 2001 From: wanghh2000 Date: Tue, 15 Jan 2019 06:06:37 +0800 Subject: [PATCH] Use configmap for node problem detector (#10548) * use configmap Signed-off-by: Hai Hui Wang * update version Signed-off-by: Hai Hui Wang --- stable/node-problem-detector/Chart.yaml | 2 +- .../templates/configmap.yaml | 94 +++++++++++++++++++ .../templates/daemonset.yaml | 13 ++- stable/node-problem-detector/values.yaml | 4 +- 4 files changed, 109 insertions(+), 4 deletions(-) create mode 100644 stable/node-problem-detector/templates/configmap.yaml diff --git a/stable/node-problem-detector/Chart.yaml b/stable/node-problem-detector/Chart.yaml index 6f1ae19e80..22211962be 100644 --- a/stable/node-problem-detector/Chart.yaml +++ b/stable/node-problem-detector/Chart.yaml @@ -1,5 +1,5 @@ name: node-problem-detector -version: "1.1.1" +version: "1.1.2" appVersion: v0.6.1 home: https://github.com/kubernetes/node-problem-detector description: Installs the node-problem-detector daemonset for monitoring extra attributes on nodes diff --git a/stable/node-problem-detector/templates/configmap.yaml b/stable/node-problem-detector/templates/configmap.yaml new file mode 100644 index 0000000000..14300fd485 --- /dev/null +++ b/stable/node-problem-detector/templates/configmap.yaml @@ -0,0 +1,94 @@ +apiVersion: v1 +data: + kernel-monitor.json: | + { + "plugin": "kmsg", + "logPath": "/dev/kmsg", + "lookback": "5m", + "bufferSize": 10, + "source": "kernel-monitor", + "conditions": [ + { + "type": "KernelDeadlock", + "reason": "KernelHasNoDeadlock", + "message": "kernel has no deadlock" + }, + { + "type": "ReadonlyFilesystem", + "reason": "FilesystemIsReadOnly", + "message": "Filesystem is read-only" + } + ], + "rules": [ + { + "type": "temporary", + "reason": "OOMKilling", + "pattern": "Kill process \\d+ (.+) score \\d+ or sacrifice child\\nKilled process \\d+ (.+) total-vm:\\d+kB, anon-rss:\\d+kB, file-rss:\\d+kB.*" + }, + { + "type": "temporary", + "reason": "TaskHung", + "pattern": "task \\S+:\\w+ blocked for more than \\w+ seconds\\." + }, + { + "type": "temporary", + "reason": "UnregisterNetDevice", + "pattern": "unregister_netdevice: waiting for \\w+ to become free. Usage count = \\d+" + }, + { + "type": "temporary", + "reason": "KernelOops", + "pattern": "BUG: unable to handle kernel NULL pointer dereference at .*" + }, + { + "type": "temporary", + "reason": "KernelOops", + "pattern": "divide error: 0000 \\[#\\d+\\] SMP" + }, + { + "type": "permanent", + "condition": "KernelDeadlock", + "reason": "AUFSUmountHung", + "pattern": "task umount\\.aufs:\\w+ blocked for more than \\w+ seconds\\." + }, + { + "type": "permanent", + "condition": "KernelDeadlock", + "reason": "DockerHung", + "pattern": "task docker:\\w+ blocked for more than \\w+ seconds\\." + }, + { + "type": "permanent", + "condition": "ReadonlyFilesystem", + "reason": "FilesystemIsReadOnly", + "pattern": "Remounting filesystem read-only" + } + ] + } + docker-monitor.json: | + { + "plugin": "journald", + "pluginConfig": { + "source": "dockerd" + }, + "logPath": "/var/log/journal", + "lookback": "5m", + "bufferSize": 10, + "source": "docker-monitor", + "conditions": [], + "rules": [ + { + "type": "temporary", + "reason": "CorruptDockerImage", + "pattern": "Error trying v2 registry: failed to register layer: rename /var/lib/docker/image/(.+) /var/lib/docker/image/(.+): directory not empty.*" + } + ] + } +kind: ConfigMap +metadata: + name: {{ include "node-problem-detector.fullname" . }} + labels: + app.kubernetes.io/name: {{ include "node-problem-detector.name" . }} + helm.sh/chart: {{ include "node-problem-detector.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} diff --git a/stable/node-problem-detector/templates/daemonset.yaml b/stable/node-problem-detector/templates/daemonset.yaml index d0f69ebc63..8989e5dd47 100644 --- a/stable/node-problem-detector/templates/daemonset.yaml +++ b/stable/node-problem-detector/templates/daemonset.yaml @@ -31,7 +31,7 @@ spec: command: - "/bin/sh" - "-c" - - "exec /node-problem-detector --logtostderr --system-log-monitors={{- range $index, $monitor := .Values.settings.log_monitors }}{{if ne $index 0}},{{end}}{{ $monitor }}{{- end }}" + - "exec /node-problem-detector --logtostderr --system-log-monitors={{- range $index, $monitor := .Values.settings.log_monitors }}{{if ne $index 0}},{{end}}/config/{{ $monitor }}{{- end }}" securityContext: privileged: true env: @@ -45,6 +45,9 @@ spec: - name: localtime mountPath: /etc/localtime readOnly: true + - name: config + mountPath: /config + readOnly: true terminationGracePeriodSeconds: 30 resources: {{ toYaml .Values.resources | indent 12 }} @@ -64,3 +67,11 @@ spec: hostPath: path: /etc/localtime type: "FileOrCreate" + - name: config + configMap: + name: {{ include "node-problem-detector.fullname" . }} + items: + {{- range $index, $monitor := .Values.settings.log_monitors }} + - key: {{ $monitor }} + path: {{ $monitor }} + {{- end }} diff --git a/stable/node-problem-detector/values.yaml b/stable/node-problem-detector/values.yaml index 1e6bccf734..7e5c36db8b 100644 --- a/stable/node-problem-detector/values.yaml +++ b/stable/node-problem-detector/values.yaml @@ -1,7 +1,7 @@ settings: log_monitors: - - /config/kernel-monitor.json - - /config/docker-monitor.json + - kernel-monitor.json + - docker-monitor.json hostpath: logdir: /var/log/