Compare commits
5 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
215554a19d | ||
|
|
04330aa474 | ||
|
|
57d517af77 | ||
|
|
1f7d9e41c8 | ||
|
|
39a27c596f |
@@ -11,23 +11,61 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: iperf3-server
|
app: iperf3-server
|
||||||
spec:
|
spec:
|
||||||
|
serviceAccountName: iperf3-server
|
||||||
subdomain: iperf3
|
subdomain: iperf3
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: set-hostname
|
- name: create-service
|
||||||
image: busybox:1.35
|
image: bitnami/kubectl:latest
|
||||||
command: ['sh', '-c']
|
|
||||||
args:
|
|
||||||
- |
|
|
||||||
NODE_NAME=$(echo $NODE_NAME | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]')
|
|
||||||
echo "iperf3-${NODE_NAME}" > /etc/hostname
|
|
||||||
hostname "iperf3-${NODE_NAME}"
|
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
env:
|
env:
|
||||||
- name: NODE_NAME
|
- name: NODE_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: spec.nodeName
|
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
|
||||||
@@ -40,8 +78,6 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: spec.nodeName
|
fieldPath: spec.nodeName
|
||||||
- name: HOSTNAME
|
|
||||||
value: $(NODE_NAME)
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "64Mi"
|
memory: "64Mi"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
|
- rbac.yaml
|
||||||
- daemonset.yaml
|
- daemonset.yaml
|
||||||
- service-headless.yaml
|
- service-headless.yaml
|
||||||
- iperf3-exporter-daemonset.yaml
|
- iperf3-exporter-daemonset.yaml
|
||||||
|
|||||||
36
k8s/apps/iperf3/rbac.yaml
Normal file
36
k8s/apps/iperf3/rbac.yaml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
@@ -16,15 +16,101 @@ spec:
|
|||||||
interval: 5m
|
interval: 5m
|
||||||
scrapeTimeout: 30s
|
scrapeTimeout: 30s
|
||||||
params:
|
params:
|
||||||
duration:
|
target: ['iperf3-ch.iperf3.svc.cluster.local:5201']
|
||||||
- "10"
|
period: ['10s']
|
||||||
streams:
|
streams: ['4']
|
||||||
- "4"
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-us.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-iris.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-home.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-master.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-it.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-nas.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
|
relabelings:
|
||||||
|
- sourceLabels: [__param_target]
|
||||||
|
targetLabel: instance
|
||||||
|
- targetLabel: __address__
|
||||||
|
replacement: iperf3-exporter.iperf3.svc.cluster.local:9579
|
||||||
|
- port: metrics
|
||||||
|
path: /probe
|
||||||
|
interval: 5m
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
params:
|
||||||
|
target: ['iperf3-spb.iperf3.svc.cluster.local:5201']
|
||||||
|
period: ['10s']
|
||||||
|
streams: ['4']
|
||||||
relabelings:
|
relabelings:
|
||||||
- sourceLabels: [__address__]
|
|
||||||
targetLabel: __param_target
|
|
||||||
regex: (.+):9579
|
|
||||||
replacement: iperf3-${1}.iperf3.iperf3.svc.cluster.local:5201
|
|
||||||
- sourceLabels: [__param_target]
|
- sourceLabels: [__param_target]
|
||||||
targetLabel: instance
|
targetLabel: instance
|
||||||
- targetLabel: __address__
|
- targetLabel: __address__
|
||||||
|
|||||||
Reference in New Issue
Block a user