# ============================================================================= # node-exporter -- metriques systeme du noeud # ============================================================================= # Presence justifiee par une seule alerte, mais la plus importante de toutes : # le disque plein. Un disque sature arrete PostgreSQL, k3s et les sauvegardes # en meme temps, et c'est la panne la plus frequente d'un serveur laisse seul. # # Port 9101 et non 9100 : 9100 est deja l'entrypoint metrics de Traefik, et # confondre les deux cibles rend le diagnostic penible. --- apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: monitoring labels: app.kubernetes.io/name: node-exporter spec: selector: matchLabels: app.kubernetes.io/name: node-exporter template: metadata: labels: app.kubernetes.io/name: node-exporter spec: hostNetwork: true hostPID: true securityContext: runAsNonRoot: true runAsUser: 65534 seccompProfile: type: RuntimeDefault containers: - name: node-exporter image: prom/node-exporter:v1.8.2 args: - --path.procfs=/host/proc - --path.sysfs=/host/sys - --path.rootfs=/host/root - --web.listen-address=:9101 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+|var/lib/rancher/.+)($|/) ports: - name: metrics containerPort: 9101 hostPort: 9101 resources: requests: cpu: 20m memory: 32Mi limits: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: ["ALL"] volumeMounts: - name: proc mountPath: /host/proc readOnly: true - name: sys mountPath: /host/sys readOnly: true - name: root mountPath: /host/root mountPropagation: HostToContainer readOnly: true volumes: - name: proc hostPath: { path: /proc } - name: sys hostPath: { path: /sys } - name: root hostPath: { path: / } tolerations: - effect: NoSchedule operator: Exists --- apiVersion: v1 kind: Service metadata: name: node-exporter namespace: monitoring labels: app.kubernetes.io/name: node-exporter spec: clusterIP: None selector: app.kubernetes.io/name: node-exporter ports: - name: metrics port: 9101 targetPort: metrics