1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-04-07 01:24:33 +00:00

Merge pull request #358 from marquiz/devel/demo-fix

Fix demo
This commit is contained in:
Kubernetes Prow Robot 2020-09-10 16:32:14 -07:00 committed by GitHub
commit 48354d0cba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 74 additions and 70 deletions

View file

@ -30,7 +30,7 @@ While our example illustrates the benefits of using node feature discovery with
Scripts to reproduce our demo results can be found in [helper-scripts](helper-scripts/).
### Prerequisites
1. `Kubectl` should be configured properly to work with your Kubernetes cluster.
1. `kubectl` should be configured properly to work with your Kubernetes cluster.
2. Node feature discovery should have been already deployed on your Kubernetes cluster.
### Instructions
@ -41,8 +41,8 @@ Follow these easy steps to reproduce the demo.
3. `./run-with-discovery.sh -a cloverleaf`
4. `./run-without-discovery.sh -a parsec`
5. `./run-without-discovery.sh -a cloverleaf`
6. `/aggregate-logs-and-plot.sh -a parsec`
7. `/aggregate-logs-and-plot.sh -a cloverleaf`
6. `./aggregate-logs-and-plot.sh -a parsec`
7. `./aggregate-logs-and-plot.sh -a cloverleaf`
Following the above steps will produce the performance and normalized performance logs and their corresponding plots for each application.

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
show_help() {
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Aggregate the results from the specified application and plot the result.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -21,7 +27,7 @@ OPTIND=1
options="ha:"
while getopts $options option
do
case $option in
case $option in
a)
if [ "$OPTARG" == "parsec" ] || [ "$OPTARG" == "cloverleaf" ]
then
@ -32,11 +38,11 @@ do
exit 0
fi
;;
h)
h)
show_help
exit 0
;;
'?')
'?')
show_help
exit 1
;;
@ -59,7 +65,7 @@ rm -f temp.log labels-with-discovery-$app.log
minimum=$(awk 'min=="" || $2 < min {min=$2} END {print min}' performance.log)
awk -v min=$minimum '{print $1,((($2/min)*100))-100}' performance.log > performance-norm.log
./box-plot.R performance.log performance-comparison-$app.pdf
./box-plot-norm.R performance-norm.log performance-comparison-$app-norm.pdf
"$this_dir/box-plot.R" performance.log performance-comparison-$app.pdf
"$this_dir/box-plot-norm.R" performance-norm.log performance-comparison-$app-norm.pdf
./clean-up.sh -a $app
"$this_dir/clean-up.sh" -a $app

View file

@ -1,8 +1,13 @@
#!/usr/bin/env bash
show_help() {
set -eo pipefail
this=`basename $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Clean-up pods with and without discovery enabled for the specified application.
Usage: $this [-a APPLICATION_NAME]
Clean-up pods with and without discovery enabled for the specified application.
-a APPLICATION_NAME clean-up the pods with APPLICATION_NAME application.
APPLICATION_NAME can be one of parsec or cloverleaf.
@ -21,7 +26,7 @@ OPTIND=1
options="ha:"
while getopts $options option
do
case $option in
case $option in
a)
if [ "$OPTARG" == "parsec" ] || [ "$OPTARG" == "cloverleaf" ]
then
@ -32,11 +37,11 @@ do
exit 0
fi
;;
h)
h)
show_help
exit 0
;;
'?')
'?')
show_help
exit 1
;;
@ -45,11 +50,11 @@ done
echo "Using application name = $app."
for i in {1..10}
do
do
kubectl delete po demo-$app-$i-wo-discovery
done
for i in {1..10}
do
do
kubectl delete po demo-$app-$i-with-discovery
done

View file

@ -1,30 +1,14 @@
apiVersion: v1
kind: Pod
metadata:
name: demo-cloverleaf-NUM
annotations:
scheduler.alpha.kubernetes.io/affinity: |
{
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "feature.node.kubernetes.io/cpu-pstate.turbo",
"operator": "DoesNotExist"
}
]
}
]
}
}
}
name: demo-cloverleaf-NUM
spec:
containers:
- name: demo-container-cloverleaf-NUM
image: quay.io/kubernetes_incubator/node-feature-discovery-APP
ports:
- containerPort: 3551
hostPort: 10001
restartPolicy: Never
containers:
- name: demo-container-cloverleaf-NUM
image: quay.io/kubernetes_incubator/node-feature-discovery-APP
ports:
- containerPort: 3551
hostPort: 10001
nodeSelector:
feature.node.kubernetes.io/cpu-pstate.turbo: 'false'
restartPolicy: Never

View file

@ -5,8 +5,8 @@ metadata:
spec:
containers:
- image: quay.io/kubernetes_incubator/node-feature-discovery-IMG
name: demo-container-APP-NUM
name: demo-container-APP-NUM
ports:
- containerPort: 3351
hostPort: 10001
hostPort: 10001
restartPolicy: Never

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
show_help() {
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Runs pods ten times with discovery enabled.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -21,7 +27,7 @@ OPTIND=1
options="ha:"
while getopts $options option
do
case $option in
case $option in
a)
if [ "$OPTARG" == "parsec" ] || [ "$OPTARG" == "cloverleaf" ]
then
@ -32,11 +38,11 @@ do
exit 0
fi
;;
h)
h)
show_help
exit 0
;;
'?')
'?')
show_help
exit 1
;;
@ -49,14 +55,12 @@ for i in {1..10}
do
if [ "$app" == "parsec" ]
then
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-1/" demo-pod-with-discovery.yaml.parsec.template > demo-pod-with-discovery.yaml
kubectl create -f demo-pod-with-discovery.yaml
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-1/" \
"$this_dir/demo-pod-with-discovery.yaml.parsec.template" | kubectl create -f -
else
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-2/" demo-pod-with-discovery.yaml.cloverleaf.template > demo-pod-with-discovery.yaml
kubectl create -f demo-pod-with-discovery.yaml
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-2/" \
"$this_dir/demo-pod-with-discovery.yaml.cloverleaf.template" | kubectl create -f -
fi
echo "WithDiscovery" >> labels-with-discovery-$app.log
done
done
echo "Ten pods with node feature discovery enabled started."
rm -f demo-pod-with-discovery.yaml

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
show_help() {
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Runs ten pods without discovery enabled with the specified application.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -21,7 +27,7 @@ OPTIND=1
options="ha:"
while getopts $options option
do
case $option in
case $option in
a)
if [ "$OPTARG" == "parsec" ] || [ "$OPTARG" == "cloverleaf" ]
then
@ -32,11 +38,11 @@ do
exit 0
fi
;;
h)
h)
show_help
exit 0
;;
'?')
'?')
show_help
exit 1
;;
@ -49,13 +55,12 @@ for i in {1..10}
do
if [ "$app" == "parsec" ]
then
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-1/" -e "s/APP/$app/" demo-pod-without-discovery.yaml.template > demo-pod-without-discovery.yaml
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-1/" -e "s/APP/$app/" \
"$this_dir/demo-pod-without-discovery.yaml.template" | kubectl create -f -
else
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-2/" -e "s/APP/$app/" demo-pod-without-discovery.yaml.template > demo-pod-without-discovery.yaml
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-2/" -e "s/APP/$app/" \
"$this_dir/demo-pod-without-discovery.yaml.template" | kubectl create -f -
fi
kubectl create -f demo-pod-without-discovery.yaml
echo "WithoutDiscovery" >> labels-without-discovery-$app.log
done
done
echo "Ten pods without node feature discovery started."
rm -f demo-pod-without-discovery.yaml