kubemarks
is a benchmarking tool based on Google Cloud Platform's PerfKit Benchmarker that can periodically run benchmarks as CronJobs on Kubernetes.
Results can be exposed to a Prometheus Pushgateway.
block_storage_workload
cluster_boot
fio
iperf
mesh_network
netperf
Benchmarks are periodically launched as a CronJob.
- Clone this repository:
$ git clone [email protected]:marcomicera/kubemarks.git $ cd kubemarks $ git submodule update --init --recursive
- Set the number of pods to be used for each benchmark in the
yaml/base/kubemarks-num-pods.yaml
file - Set the Pushgateway address in
yaml/base/kubemarks-conf.yaml
- Launch a benchmark periodically. E.g., for
iperf
:$ kubectl kustomize yaml/benchmarks/iperf | kubectl apply -f -
- Define the list of benchmarks to run (and the Pushgateway address) in
yaml/base/kubemarks-conf.yaml
- Set the number of pods to be used for each benchmark in the
yaml/base/kubemarks-num-pods.yaml
file - Set the frequency with which benchmarks will be run in
yaml/base/kubemarks-pkb-cronjob.yaml
schedule: '0 * * * *'
- Launch this set of benchmarks periodically:
$ kubectl kustomize yaml/base | kubectl apply -f -
Check doc/README.md
for the complete documentation.
- Google's
PerfKit Benchmarker
(description) - The Prometheus monitoring system
- Grafana for time series analytics
- Kubernetes
minikube
(and its documentation)