Skip to content

☸ Kubernetes periodic benchmarking tool with Prometheus Pushgateway results exposer

License

Notifications You must be signed in to change notification settings

marcomicera/kubemarks

Repository files navigation

kubemarks: KUBErnetes benchMARKS

GitHub GitHub issues GitHub tag (latest by date)

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.

Supported benchmarks

  • block_storage_workload
  • cluster_boot
  • fio
  • iperf
  • mesh_network
  • netperf

How to run it

Benchmarks are periodically launched as a CronJob.

Steps

  1. Clone this repository:
    $ git clone git@github.com:marcomicera/kubemarks.git
    $ cd kubemarks
    $ git submodule update --init --recursive
  2. Set the number of pods to be used for each benchmark in the yaml/base/kubemarks-num-pods.yaml file
  3. Set the Pushgateway address in yaml/base/kubemarks-conf.yaml
  4. Launch a benchmark periodically. E.g., for iperf:
    $ kubectl kustomize yaml/benchmarks/iperf | kubectl apply -f -

Launch more benchmarks programmatically

  1. Define the list of benchmarks to run (and the Pushgateway address) in yaml/base/kubemarks-conf.yaml
  2. Set the number of pods to be used for each benchmark in the yaml/base/kubemarks-num-pods.yaml file
  3. Set the frequency with which benchmarks will be run in yaml/base/kubemarks-pkb-cronjob.yaml
    schedule: '0 * * * *'
  4. Launch this set of benchmarks periodically:
    $ kubectl kustomize yaml/base | kubectl apply -f -

Documentation

Check doc/README.md for the complete documentation.

References

About

☸ Kubernetes periodic benchmarking tool with Prometheus Pushgateway results exposer

Topics

Resources

License

Stars

Watchers

Forks