Skip to content

Commit 4f8da95

Browse files
committed
fix linux node exporter
1 parent 6b7d01a commit 4f8da95

File tree

4 files changed

+77
-92
lines changed

4 files changed

+77
-92
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: monitoring.coreos.com/v1
2+
kind: PodMonitor
3+
metadata:
4+
name: node-exporter
5+
namespace: monitoring
6+
labels:
7+
app: node-exporter # must match your Prometheus CR's `podMonitorSelector`
8+
spec:
9+
selector:
10+
matchLabels:
11+
app: node-exporter
12+
namespaceSelector:
13+
matchNames:
14+
- monitoring
15+
podMetricsEndpoints:
16+
- port: metrics
17+
path: /metrics
18+
interval: 5s
19+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
apiVersion: apps/v1
2+
kind: DaemonSet
3+
metadata:
4+
name: node-exporter
5+
namespace: monitoring
6+
labels:
7+
app: node-exporter
8+
spec:
9+
selector:
10+
matchLabels:
11+
app: node-exporter
12+
template:
13+
metadata:
14+
labels:
15+
app: node-exporter
16+
spec:
17+
hostNetwork: true
18+
hostPID: true
19+
containers:
20+
- name: node-exporter
21+
image: quay.io/prometheus/node-exporter:latest
22+
args:
23+
- "--path.procfs=/host/proc"
24+
- "--path.sysfs=/host/sys"
25+
- "--collector.disable-defaults"
26+
- "--collector.cpu"
27+
- "--collector.meminfo"
28+
- "--collector.loadavg"
29+
- "--collector.stat"
30+
ports:
31+
- containerPort: 9100
32+
hostPort: 9100
33+
name: metrics
34+
resources:
35+
limits:
36+
memory: 100Mi
37+
requests:
38+
cpu: 100m
39+
memory: 50Mi
40+
volumeMounts:
41+
- name: proc
42+
mountPath: /host/proc
43+
readOnly: true
44+
- name: sys
45+
mountPath: /host/sys
46+
readOnly: true
47+
nodeSelector:
48+
kubernetes.io/os: linux
49+
volumes:
50+
- name: proc
51+
hostPath:
52+
path: /proc
53+
- name: sys
54+
hostPath:
55+
path: /sys
56+
terminationGracePeriodSeconds: 30

clusterloader2/pkg/prometheus/manifests/exporters/node_exporter/node-exporter.yaml

Lines changed: 0 additions & 49 deletions
This file was deleted.

clusterloader2/pkg/prometheus/prometheus.go

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"sync"
2828
"time"
2929

30-
"golang.org/x/sync/errgroup"
3130
corev1 "k8s.io/api/core/v1"
3231
rbacv1 "k8s.io/api/rbac/v1"
3332
apierrs "k8s.io/apimachinery/pkg/api/errors"
@@ -56,7 +55,7 @@ const (
5655
kubeStateMetricsManifests = "exporters/kube-state-metrics/*.yaml"
5756
masterIPServiceMonitors = "master-ip/*.yaml"
5857
metricsServerManifests = "exporters/metrics-server/*.yaml"
59-
nodeExporterPod = "exporters/node_exporter/node-exporter.yaml"
58+
nodeExporterManifests = "exporters/node_exporter/*.yaml"
6059
windowsNodeExporterManifests = "exporters/windows_node_exporter/*.yaml"
6160
pushgatewayManifests = "pushgateway/*.yaml"
6261
)
@@ -236,7 +235,7 @@ func (pc *Controller) SetUpPrometheusStack() error {
236235
return err
237236
}
238237
if pc.clusterLoaderConfig.PrometheusConfig.ScrapeNodeExporter {
239-
if err := pc.runNodeExporter(); err != nil {
238+
if err := pc.applyDefaultManifests(nodeExporterManifests); err != nil {
240239
return err
241240
}
242241
}
@@ -395,46 +394,6 @@ func (pc *Controller) exposeAPIServerMetrics() error {
395394
return nil
396395
}
397396

398-
// runNodeExporter adds node-exporter as master's static manifest pod.
399-
// TODO(mborsz): Consider migrating to something less ugly, e.g. daemonset-based approach,
400-
// when master nodes have configured networking.
401-
func (pc *Controller) runNodeExporter() error {
402-
klog.V(2).Infof("Starting node-exporter on master nodes.")
403-
kubemarkFramework, err := framework.NewFramework(&pc.clusterLoaderConfig.ClusterConfig, numK8sClients)
404-
if err != nil {
405-
return err
406-
}
407-
408-
// Validate masters first
409-
nodes, err := client.ListNodes(kubemarkFramework.GetClientSets().GetClient())
410-
if err != nil {
411-
return err
412-
}
413-
414-
var g errgroup.Group
415-
numMasters := 0
416-
for _, node := range nodes {
417-
node := node
418-
if util.LegacyIsMasterNode(&node) || util.IsControlPlaneNode(&node) {
419-
numMasters++
420-
g.Go(func() error {
421-
f, err := manifestsFS.Open(nodeExporterPod)
422-
if err != nil {
423-
return fmt.Errorf("unable to open manifest file: %v", err)
424-
}
425-
defer f.Close()
426-
return pc.ssh.Exec("sudo tee /etc/kubernetes/manifests/node-exporter.yaml > /dev/null", &node, f)
427-
})
428-
}
429-
}
430-
431-
if numMasters == 0 {
432-
return fmt.Errorf("node-exporter requires master to be registered nodes")
433-
}
434-
435-
return g.Wait()
436-
}
437-
438397
func (pc *Controller) waitForPrometheusToBeHealthy() error {
439398
klog.V(2).Info("Waiting for Prometheus stack to become healthy...")
440399
return wait.PollImmediate(

0 commit comments

Comments
 (0)