Compare commits
1 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5a7b28a07 |
@@ -11,61 +11,6 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: iperf3-server
|
app: iperf3-server
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: iperf3-server
|
|
||||||
subdomain: iperf3
|
|
||||||
initContainers:
|
|
||||||
- name: create-service
|
|
||||||
image: bitnami/kubectl:latest
|
|
||||||
env:
|
|
||||||
- name: NODE_NAME
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: spec.nodeName
|
|
||||||
- name: POD_IP
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: status.podIP
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
# Clean node name for service name
|
|
||||||
NODE_CLEAN=$(echo "$NODE_NAME" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]' | tr '_' '-')
|
|
||||||
SERVICE_NAME="iperf3-${NODE_CLEAN}"
|
|
||||||
|
|
||||||
# Create service for this pod
|
|
||||||
kubectl apply -f - <<EOF
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: ${SERVICE_NAME}
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-node-service
|
|
||||||
target-node: "${NODE_NAME}"
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: iperf3
|
|
||||||
port: 5201
|
|
||||||
protocol: TCP
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: ${SERVICE_NAME}
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-node-service
|
|
||||||
target-node: "${NODE_NAME}"
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: ${POD_IP}
|
|
||||||
ports:
|
|
||||||
- name: iperf3
|
|
||||||
port: 5201
|
|
||||||
protocol: TCP
|
|
||||||
EOF
|
|
||||||
containers:
|
containers:
|
||||||
- name: iperf3-server
|
- name: iperf3-server
|
||||||
image: networkstatic/iperf3:latest
|
image: networkstatic/iperf3:latest
|
||||||
@@ -73,11 +18,6 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- containerPort: 5201
|
- containerPort: 5201
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
|
||||||
- name: NODE_NAME
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: spec.nodeName
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "64Mi"
|
memory: "64Mi"
|
||||||
@@ -85,6 +25,7 @@ spec:
|
|||||||
limits:
|
limits:
|
||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
cpu: "500m"
|
cpu: "500m"
|
||||||
|
hostNetwork: true
|
||||||
tolerations:
|
tolerations:
|
||||||
- effect: NoSchedule
|
- effect: NoSchedule
|
||||||
operator: Exists
|
operator: Exists
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
---
|
|
||||||
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:
|
|
||||||
serviceAccountName: iperf3-server
|
|
||||||
initContainers:
|
|
||||||
- name: create-exporter-service
|
|
||||||
image: bitnami/kubectl:latest
|
|
||||||
env:
|
|
||||||
- name: NODE_NAME
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: spec.nodeName
|
|
||||||
- name: POD_IP
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: status.podIP
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
# Clean node name for service name
|
|
||||||
NODE_CLEAN=$(echo "$NODE_NAME" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]' | tr '_' '-')
|
|
||||||
SERVICE_NAME="iperf3-exporter-${NODE_CLEAN}"
|
|
||||||
|
|
||||||
# Create service for this exporter pod
|
|
||||||
kubectl apply -f - <<EOF
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: ${SERVICE_NAME}
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-exporter-service
|
|
||||||
target-node: "${NODE_NAME}"
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
port: 9579
|
|
||||||
protocol: TCP
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: ${SERVICE_NAME}
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-exporter-service
|
|
||||||
target-node: "${NODE_NAME}"
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: ${POD_IP}
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
port: 9579
|
|
||||||
protocol: TCP
|
|
||||||
EOF
|
|
||||||
containers:
|
|
||||||
- name: iperf3-exporter
|
|
||||||
image: ghcr.io/edgard/iperf3_exporter:1.2.2
|
|
||||||
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
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -2,10 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- rbac.yaml
|
|
||||||
- daemonset.yaml
|
- daemonset.yaml
|
||||||
- service-headless.yaml
|
- service.yaml
|
||||||
- iperf3-exporter-daemonset.yaml
|
|
||||||
- iperf3-exporter-service.yaml
|
|
||||||
- servicemonitor.yaml
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: iperf3-server
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-server
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: Role
|
|
||||||
metadata:
|
|
||||||
name: iperf3-service-manager
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-server
|
|
||||||
rules:
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources: ["services", "endpoints"]
|
|
||||||
verbs: ["get", "list", "create", "update", "patch", "delete"]
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: RoleBinding
|
|
||||||
metadata:
|
|
||||||
name: iperf3-service-manager
|
|
||||||
namespace: iperf3
|
|
||||||
labels:
|
|
||||||
app: iperf3-server
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: Role
|
|
||||||
name: iperf3-service-manager
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: iperf3-server
|
|
||||||
namespace: iperf3
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: iperf3
|
name: iperf3-server
|
||||||
spec:
|
spec:
|
||||||
clusterIP: None
|
type: NodePort
|
||||||
selector:
|
selector:
|
||||||
app: iperf3-server
|
app: iperf3-server
|
||||||
ports:
|
ports:
|
||||||
@@ -12,3 +12,5 @@ spec:
|
|||||||
protocol: TCP
|
protocol: TCP
|
||||||
port: 5201
|
port: 5201
|
||||||
targetPort: 5201
|
targetPort: 5201
|
||||||
|
nodePort: 30201
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: monitoring.coreos.com/v1
|
|
||||||
kind: ServiceMonitor
|
|
||||||
metadata:
|
|
||||||
name: iperf3-exporter
|
|
||||||
labels:
|
|
||||||
app: iperf3-exporter
|
|
||||||
release: prometheus
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: iperf3-exporter
|
|
||||||
endpoints:
|
|
||||||
- port: metrics
|
|
||||||
path: /probe
|
|
||||||
interval: 5m
|
|
||||||
scrapeTimeout: 30s
|
|
||||||
params:
|
|
||||||
target:
|
|
||||||
- "iperf3-ch.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-us.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-iris.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-home.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-master.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-it.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-nas.iperf3.svc.cluster.local:5201"
|
|
||||||
- "iperf3-spb.iperf3.svc.cluster.local:5201"
|
|
||||||
duration:
|
|
||||||
- "10"
|
|
||||||
streams:
|
|
||||||
- "4"
|
|
||||||
relabelings:
|
|
||||||
- sourceLabels: [__param_target]
|
|
||||||
targetLabel: instance
|
|
||||||
- sourceLabels: [__param_target]
|
|
||||||
targetLabel: __param_target
|
|
||||||
- sourceLabels: [__param_target]
|
|
||||||
targetLabel: __address__
|
|
||||||
regex: iperf3-(.+)\.iperf3\.svc\.cluster\.local:5201
|
|
||||||
replacement: iperf3-exporter-${1}.iperf3.svc.cluster.local:9579
|
|
||||||
metricRelabelings:
|
|
||||||
- sourceLabels: [__name__]
|
|
||||||
regex: iperf3_(.+)
|
|
||||||
targetLabel: __name__
|
|
||||||
replacement: network_${1}
|
|
||||||
Reference in New Issue
Block a user