kubernetes / node-problem-detector

This is a place for various problem detectors running on the Kubernetes nodes.
Apache License 2.0
3.02k stars 633 forks source link

custom npd check (bash) #959

Open kotyara85 opened 2 months ago

kotyara85 commented 2 months ago

Hello everyone, I followed this instruction - https://github.com/kubernetes/node-problem-detector/blob/4ad49bbd84b8ced45ac825eac01ec93d9235935e/config/custom-plugin-monitor.json

and created a simple check which connects to kube api, fetches kube svc ip and tries to connect to it -

#!/bin/sh
set -e
export KUBECONFIG=/etc/kubernetes/kubelet.conf
kube_svc=$(kubectl  get svc kubernetes -o jsonpath="{.spec.clusterIP}")
curl --cacert /etc/kubernetes/pki/ca.crt https://${kube_svc}

It's mounted using config map

NPD returns this -

I0928 06:09:24.090884       1 plugin.go:281] Start logs from plugin {Type:NPD Condition: Reason:KubeServiceDown Path:/scripts/kube_service.sh Args:[] TimeoutString:0xc000b0ae20 Timeout:5s}
 /scripts/kube_service.sh: 4: kubectl: not found

How are all those scripts supposed to get run if npd, obviously, doesn't have any binaries. Attach an extra container with kubectl?

Thanks