K-Bench: A Benchmark to Measure Kubernetes Control and Data Plane Performance
Honeycomb is sponsoring The New Stack’s coverage of Kubecon+CloudNativeCon North America 2020.
Naturally, the first thing anyone might want to do with a new cluster is to see how fast it can go. Or, on a more practical level, they may want to test how many resources their fancy new cloud native application will consume. Now, K-Bench, a project from the VMware Tanzu team, provides a framework for benchmarking Kubernetes performance, as well as the applications that run on top of K8s, aka testing the responsiveness of the control plane and the data plane for a Kubernetes deployment.
Karthik Ganesan, Staff Performance Engineer at VMware R&D, described the technology at KubeCon+CloudNativeCon this week, along with Facebook Engineer Yong Li.
K-Bench does this by deploying and manipulating Kubernetes objects, Ganesan said. For the control plane, K-Bench can harvest performance metrics in a number of ways: it benchmarks pod startup latencies by simultaneously launching and then timing 1,000 NGINX pods. For storage, it measures the speed of setting up a persistent volume, and then the read/write speeds to that volume from a pod. In general, K-Bench measures fine-grained critical path latencies, across all the components in the entire booth-up process, until the desired state is achieved, pulling event timestamps from both the server and the client.
For the data plane, model workloads are containerized and run to collect system information. The K-Bench package includes a copy of Redis Lab’s memtier benchmark to test such as CPU and memory usage. FIO tests I/O, qperf and iperf3 for network testing. The framework is extensible, so the user can measure their own specific workloads.