commit eeb4e00a66a633a38b172a342f9e7c6056dff65e
parent 42a3a9051928e4eec7a93e4988095a4a10659478
Author: MTRNord <mtrnord1@gmail.com>
Date: Sat, 8 Apr 2023 21:45:44 +0200
Add monitoring for kube-router
Diffstat:
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/apps/base/kube-prometheus-stack/release.yaml b/apps/base/kube-prometheus-stack/release.yaml
@@ -88,6 +88,8 @@ spec:
url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/hubble-dashboard.json
postgres-dashboard:
url: https://raw.githubusercontent.com/prometheus-community/postgres_exporter/master/postgres_mixin/dashboards/postgres-overview.json
+ kube-router-dashboard:
+ url: https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/dashboard/kube-router.json
nats:
nats-jetstream:
url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/nats.json
diff --git a/infrastructure/controllers/kube-router.yaml b/infrastructure/controllers/kube-router.yaml
@@ -5,6 +5,11 @@ metadata:
labels:
k8s-app: kube-router
tier: node
+ annotations:
+ checkov.io/skip1: CKV_K8S_19=The container needs to modify host network rules.
+ checkov.io/skip2: CKV_K8S_35=The container needs to know values from the node.
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "20244"
name: kube-router
namespace: kube-system
spec:
@@ -45,6 +50,8 @@ spec:
#- "--peer-router-ips=<CHANGE ME>"
#- "--peer-router-asns=<CHANGE ME>"
#- "--cluster-asn=<CHANGE ME>"
+ # Metrics
+ - "--metrics-port=20244"
env:
- name: NODE_NAME
valueFrom:
@@ -56,6 +63,9 @@ spec:
port: 20244
initialDelaySeconds: 10
periodSeconds: 3
+ ports:
+ - containerPort: 20244
+ name: monitoring
resources:
requests:
cpu: 250m
@@ -135,3 +145,20 @@ subjects:
- kind: ServiceAccount
name: kube-router
namespace: kube-system
+---
+apiVersion: monitoring.coreos.com/v1
+kind: PodMonitor
+metadata:
+ name: kube-router
+ namespace: kube-system
+spec:
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ podMetricsEndpoints:
+ - interval: 5s
+ path: /metrics
+ port: monitoring
+ selector:
+ matchLabels:
+ k8s-app: kube-router