Skip to content

Instantly share code, notes, and snippets.

@laurivosandi
Last active December 12, 2025 05:38
Show Gist options
  • Select an option

  • Save laurivosandi/fe54f26ca21bc2dfb6cd5a186be77e2d to your computer and use it in GitHub Desktop.

Select an option

Save laurivosandi/fe54f26ca21bc2dfb6cd5a186be77e2d to your computer and use it in GitHub Desktop.
Kubernetes benchmarking with iperf
# rate(mikrotik_interface_received_bytes_total{interface=~"bond.*"}[1m])
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: iperf-server
labels:
app: iperf-server
spec:
selector:
matchLabels:
app: iperf-server
template:
metadata:
labels:
app: iperf-server
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
containers:
- name: iperf
image: codemowers/util
imagePullPolicy: IfNotPresent
args:
- iperf
- -s
ports:
- containerPort: 5201
---
apiVersion: v1
kind: Service
metadata:
name: iperf-server
labels:
app: iperf-server
spec:
clusterIP: None
selector:
app: iperf-server
ports:
- protocol: TCP
port: 5201
targetPort: 5201
---
apiVersion: batch/v1
kind: Job
metadata:
name: iperf-client
labels:
app: iperf-client
spec:
parallelism: 100
backoffLimit: 100
template:
metadata:
labels:
app: iperf-client
spec:
restartPolicy: OnFailure
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: iperf-client
containers:
- name: iperf-client
image: codemowers/util
imagePullPolicy: IfNotPresent
args:
- iperf
- -c
- iperf-server
- -P
- "2"
- -t
- "600"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment