From fa98e553cd668ffaf85941ff2a7748df5da6829d Mon Sep 17 00:00:00 2001 From: Ultradesu Date: Tue, 18 Nov 2025 21:32:01 +0200 Subject: [PATCH] Added iperf3-server --- .../iperf3/iperf3-exporter-daemonset.yaml | 40 +++++++++++++++++++ k8s/apps/iperf3/iperf3-exporter-service.yaml | 15 +++++++ k8s/apps/iperf3/service-headless.yaml | 14 +++++++ k8s/apps/iperf3/servicemonitor.yaml | 37 +++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 k8s/apps/iperf3/iperf3-exporter-daemonset.yaml create mode 100644 k8s/apps/iperf3/iperf3-exporter-service.yaml create mode 100644 k8s/apps/iperf3/service-headless.yaml create mode 100644 k8s/apps/iperf3/servicemonitor.yaml diff --git a/k8s/apps/iperf3/iperf3-exporter-daemonset.yaml b/k8s/apps/iperf3/iperf3-exporter-daemonset.yaml new file mode 100644 index 0000000..f1b9553 --- /dev/null +++ b/k8s/apps/iperf3/iperf3-exporter-daemonset.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: iperf3-exporter + labels: + app: iperf3-exporter +spec: + selector: + matchLabels: + app: iperf3-exporter + template: + metadata: + labels: + app: iperf3-exporter + spec: + containers: + - name: iperf3-exporter + image: edgardlt/iperf3_exporter:latest + ports: + - containerPort: 9579 + name: metrics + protocol: TCP + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "128Mi" + cpu: "200m" + env: + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + tolerations: + - effect: NoSchedule + operator: Exists + - effect: NoExecute + operator: Exists diff --git a/k8s/apps/iperf3/iperf3-exporter-service.yaml b/k8s/apps/iperf3/iperf3-exporter-service.yaml new file mode 100644 index 0000000..e432637 --- /dev/null +++ b/k8s/apps/iperf3/iperf3-exporter-service.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: iperf3-exporter + labels: + app: iperf3-exporter +spec: + selector: + app: iperf3-exporter + ports: + - name: metrics + protocol: TCP + port: 9579 + targetPort: 9579 diff --git a/k8s/apps/iperf3/service-headless.yaml b/k8s/apps/iperf3/service-headless.yaml new file mode 100644 index 0000000..af2d65d --- /dev/null +++ b/k8s/apps/iperf3/service-headless.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: iperf3 +spec: + clusterIP: None + selector: + app: iperf3-server + ports: + - name: iperf3 + protocol: TCP + port: 5201 + targetPort: 5201 diff --git a/k8s/apps/iperf3/servicemonitor.yaml b/k8s/apps/iperf3/servicemonitor.yaml new file mode 100644 index 0000000..19a2c82 --- /dev/null +++ b/k8s/apps/iperf3/servicemonitor.yaml @@ -0,0 +1,37 @@ +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: iperf3-exporter + namespace: default + labels: + app: iperf3-exporter + release: prometheus +spec: + selector: + matchLabels: + app: iperf3-exporter + endpoints: + - port: metrics + path: /probe + interval: 5m + scrapeTimeout: 30s + params: + duration: + - "10" + streams: + - "4" + relabelings: + - sourceLabels: [__address__] + targetLabel: __param_target + regex: (.+):9579 + replacement: iperf3-${1}.iperf3.default.svc.cluster.local:5201 + - sourceLabels: [__param_target] + targetLabel: instance + - targetLabel: __address__ + replacement: iperf3-exporter.default.svc.cluster.local:9579 + metricRelabelings: + - sourceLabels: [__name__] + regex: iperf3_(.+) + targetLabel: __name__ + replacement: network_${1} \ No newline at end of file