The sed command for updating no-proxy settings in the proxy.sh file was
not working. I made it match the above command which was working for
/etc/environment.
Signed-off-by: Craig Sterrett <craig.sterrett@intel.com>
Since collectd is started before the pods are launched and
shutdown after the last pod is launched, we gather data outside
the pod launch window which can adversely influence the per pod
launch stats. This is especially true after the last pod launches
as all the pods are then deleted before collectd stops collecting
metrics.
This patch isolates the collectd data used to only
coincide with the pod launch window.
And additional change in this patch is to improve the secondary
y axis scaling. There was an ill-advised check in previously to
force the scale to be at least 1. This does not work well when
the pod number is significantly higher than say 100 (the max
possible cpu idle value).
This patch changes the scaling to be across all data to be graphed.
The special condition for interface drops and interface errors,
where the data is typically 0. We don't scale by 0.
Signed-off-by: David Lyle <dklyle0@gmail.com>
A recent change to debian apt repositories led to build errors
for the report container. The error was around stretch release
files. The container image we are based on published an update
which fixes this error. This patch updates to use :latest to
avoid errors when building.
Signed-off-by: David Lyle <dklyle0@gmail.com>
This adds ability to upgrade/downgrade to desired Clear version.
The default behavior remains unchanged (auto updating to latest)
Signed-off-by: Justin Scott <justin.a.scott@intel.com>
This patch add's Flannel to CNI, export the environment variable
to use Flannel, and uses crio as default unless the user
specify otherwise.
Signed-Off: Syed Ahsan <syed.ahsan.shamim.zaidi@intel.com>
This adds a script that parses create_stack for component versions
and URLs and compares them to the latest versions available.
Signed-off-by: Justin Scott <justin.a.scott@intel.com>
* Adding Cert sans to kubeadm config
This patch add the possibility to pass a list of ips or names to the certSans
property in the kubeadm.yml file.
Signed-off-by: Rivera Gonzalez, Julio C <julio.c.rivera.gonzalez@intel.com>
* Make idempotent addition of certSANs
Signed-off-by: Rivera Gonzalez, Julio C <julio.c.rivera.gonzalez@intel.com>
This change adds Cilium to create_stack script, and uses crio
by default unless the user otherwise speicify
Signed-Off: Syed Ahsan <syed.ahsan.shamim.zaidi@intel.com>
Added .svc to the no_proxy in setup_system.sh to keep Kubernetes service
requests from being routed to the proxy. This fixes and issue that
Humberto was seeing in his testing.
Signed-off-by: Craig Sterrett <craig.sterrett@intel.com>
The collectd csv plugin starts a new file for each day that data is
being recorded. Currently, collectd_scaling.R only reads from the
first day's file. This leads to incomplete data being rendered in
the report charts. All the data files are collected and present,
they just need to be read.
This patch makes changes to read all the days of collectd data and add
them to the data set.
Signed-off-by: David Lyle <dklyle0@gmail.com>
Add Dockerfile for building an alpine image with collectd.
Published an image to dockerhub and reference it in collectd.yaml
Signed-off-by: David Lyle <dklyle0@gmail.com>
As part of the existing json file, there is a 'kubectl get nodes'
json dump. Instead of collecting this information each pod launch,
use the data already gathered. This data is immutable during the
test runs. This greatly improves the overall runtime of the test
script by preventing expensive kubectl execs per node per iteration.
Signed-off-by: David Lyle <dklyle0@gmail.com>
The secondary y axis have to be scaled by a factor of the primary
y axis, the default being 1. Some of the charts graph both a data
value and the number of pods. The scale for those are different
and dependent on the data collected. Logic has been added to
calculate the scale for each chart based on the data.
Signed-off-by: David Lyle <dklyle0@gmail.com>
Adding support for more than one network interface in a given node.
Also supporting more interface naming patterns.
Signed-off-by: David Lyle <dklyle0@gmail.com>
This patch adds a new script, scaling/k8s_scaling_rapid.sh, for
launching pods and collecting metrics. The goal is to two fold.
The first goal is improve the required runtime duration of scaling
to large numbers of pods. k8s_scaling.sh can take up to 29 hours
to scale to 2900 pods. The is largely due to the overhead of
collecting system utilization stats after each new pod is launched.
This new script will collect system utilization stats asynchronously.
The second goal is to make it easier to collect additional system
utilization stats by leveraging the plugins supported by collectd.
Instead of using the stats daemon set, a new daemon set
that runs collectd on each node is added. collectd configuration
is handled by collectd/collectd.conf A configmap is added to the
K8s cluster containing collectd.conf, so the user of the script
can test new configurations easily. The configmap is created and
deleted as part of the test run. The data from collectd is stored on
each node in the cluster via the csv plugin and the data is
collected to the master node at the end of the test run.
Several new pages have been added to the metrics_report.pdf
These pages cover the same metrics as k8s_scale.sh results, but are
populated with data from collectd. Additionally, network interface
results are added.
To run the report, in addition to the previous steps of creating
a new directory and copying the result json file into it, all the
new <node_name>.tar.gz files must be copied in as well.
Signed-off-by: David Lyle <dklyle0@gmail.com>
Vagrant file also sets a default container engine and runs
setup_system.sh. This was currently setting runner=containerd if RUNNER
environment variable was not set, I changed default to crio
Closes issue #216
Signed-off-by: Craig Sterrett <craig.sterrett@intel.com>
* Vagrant Libvirt Instructions update
This patch adds the users to the default group so we dont
have to use sudo to start the vagrant, as using sudo is not
the most optimal route for gems to be properly configured.
Signed-off: Syed Ahsan<ahsanmohsin04@yahoo.com>
This change helps with setting up the RUNNER to use crio
by default instead of using containerd. If the user wants
to use containerd, they need to specify when running the
setup_system script.
Signed-off: Syed Ahsan <syed.ahsan.shamim.zaidi@intel.com>
A recent change put global variable declarations in a function,
the variables no longer are globally visible. This change removes
the encapsulation in a function.
- Send n requests for each of the running pods.
- Measure response time to response.
- Report response time percentiles: 5-25-50-75-95 %.
- Refactor scaling/*.sh variables to scaling/common.bash.
Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>