A tool to run network performance tests in Kubernetes clusters.
k8s-netperf
is a comprehensive network performance testing tool designed specifically for Kubernetes environments. It supports multiple benchmark tools (netperf, iperf3, uperf) and can test various network scenarios including pod-to-pod, host networking, and cross-availability zone communications.
Tool | Test | Status |
---|---|---|
netperf | TCP_STREAM | Working |
netperf | UDP_STREAM | Working |
netperf | TCP_RR | Working |
netperf | UDP_RR | Working |
netperf | TCP_CRR | Working |
uperf | TCP_STREAM | Working |
uperf | UDP_STREAM | Working |
uperf | TCP_RR | Working |
uperf | UDP_RR | Working |
iperf3 | TCP_STREAM | Working |
iperf3 | UDP_STREAM | Working |
$ git clone http://github.com/cloud-bulldozer/k8s-netperf
$ cd k8s-netperf
$ make build
$ kubectl create ns netperf
$ kubectl create sa netperf -n netperf
$ ./bin/amd64/k8s-netperf --config netperf.yml
For detailed documentation, please refer to the following guides:
- Setup and Installation - How to build, install, and configure k8s-netperf
- Configuration - Configuration file formats, benchmark options, and OpenSearch integration
- Advanced Usage - VMs, User Defined Networks (UDN), bridge networks, and external servers
- Output and Results - Understanding test output, pass/fail criteria, and CSV exports
- Multiple benchmark tools: Support for netperf, iperf3, and uperf
- Flexible test scenarios: Pod-to-pod, host networking, cross-AZ testing
- Virtual Machine support: Test with KubeVirt VMs
- Advanced networking: User Defined Networks (UDN) and bridge interfaces
- Pass/fail validation: Automated performance regression detection
- Result archiving: CSV export and OpenSearch integration
- Prometheus integration: System metrics collection during tests
Please see CONTRIBUTING.md for guidelines on how to contribute to this project.