From eff81356ff4b5248d5e24855208af30760cad776 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Wed, 2 Dec 2020 02:21:14 +0100 Subject: [PATCH] Increased server replicas --- iperf3-k8s-flood.sh | 64 +++++++++++++++++++++++++++++++++++++++++++++ iperf3.yaml | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100755 iperf3-k8s-flood.sh diff --git a/iperf3-k8s-flood.sh b/iperf3-k8s-flood.sh new file mode 100755 index 0000000..28bb88f --- /dev/null +++ b/iperf3-k8s-flood.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +set -eu + +cd $(dirname $0) + +## + +kubectl create -f iperf3.yaml + +until $(kubectl get pods -l app=iperf3-server -o jsonpath='{.items[0].status.containerStatuses[0].ready}'); do + echo "Waiting for iperf3 server to start..." + sleep 5 +done + +echo "Server is running" +echo + +CLIENTS=$(kubectl get pods -l app=iperf3-client -o name | cut -d'/' -f2) + +for POD in ${CLIENTS}; do + until $(kubectl get pod "${POD}" -o jsonpath='{.status.containerStatuses[0].ready}'); do + echo "Waiting for ${POD} to start..." + sleep 5 + done +done + +echo "All clients are running" +echo + +kubectl get pod -o=custom-columns=NAME:.metadata.name,NODE:.spec.nodeName,IP-NODE:.status.hostIP,IP-POD:status.podIP + +echo + +## +## + +CLIENTS=$(kubectl get pods -l app=iperf3-client -o name | cut -d'/' -f2) + +for POD in ${CLIENTS}; do + HOST=$(kubectl get pod "${POD}" -o jsonpath='{.status.hostIP}') + kubectl exec -it "${POD}" -- iperf3 -c iperf3-server -T "Client on ${HOST}" "$@" + echo +done + +echo "Now all clients flood the server at the same time..." + +for POD in ${CLIENTS}; do + echo "[Run] iperf-client pod ${POD}" + kubectl exec -it "${POD}" -- iperf3 -c iperf3-server "$@" &> /dev/null & +done + +until [[ $(jobs | grep -v Running) != "" ]]; do + printf "." + sleep 2 +done +printf " done\n" + +## +## + +kubectl delete --cascade -f iperf3.yaml + +## diff --git a/iperf3.yaml b/iperf3.yaml index 115303e..1a86e42 100644 --- a/iperf3.yaml +++ b/iperf3.yaml @@ -5,7 +5,7 @@ metadata: labels: app: iperf3-server spec: - replicas: 1 + replicas: 10 selector: matchLabels: app: iperf3-server