k8s-testsuite creates test clients and web servers inside Kubernetes and coordinates how many of them run during a scenario. It measures results such as successful requests, throughput and latency, making it useful for exploring a particular load or network path. This is a synthetic test harness, not a certification of the whole cluster. The placement and resources of the generators must be recorded so their limitations are not mistaken for application capacity.
Current guidance
The mrahbar/k8s-testsuite repository contains separate load-test and network-test Helm charts. Its load test combines web servers, load generators and an aggregator that changes replica counts through the Kubernetes API. The recovered description should be read as that particular harness, not a comprehensive assessment of cluster reliability or CNCF conformance.
The upstream scenarios vary client and server counts and collect throughput, success rate and latency. Record those counts, generator resource limits, node placement and network path before comparing results. A load generator constrained by its own CPU or a same-node network path can answer a different question from the production workload you intended to measure.
Run in an isolated test namespace with explicit capacity and permissions; the aggregator’s ability to create or scale workloads can consume substantial cluster resources. Review the old chart APIs and component images before executing it. Compare repeated runs under identical conditions and retain raw results, failures and teardown records. This source review has not established a supported modern release matrix or produced benchmark results, so the historical examples should not be treated as capacity guarantees.
Historical upstream link check · 2026-10-09
The recorded upstream address responded successfully (HTTP 200) on 2026-10-09. GitHub does not mark mrahbar/k8s-testsuite archived or disabled; this does not establish active maintenance, support or compatibility. Link availability does not certify the historical installation instructions or current security support.
Website availability is separate from project, chart and image support. Use the current guidance and primary sources on this page to assess the distribution.
Historical Kubedex content
Preserved for context. Commands, versions, prices and results below reflect the original research.
This Helm chart deploys a full load test suite in Kubernetes. It consists of the 3 micro-services:
- A webserver based on simple-webserver
- A loadbot client which is based on this and that
- An aggregator which orchestrates the test run
Aggregator
Since the webservers and the loadbots work autonomic the task of the aggregator ist to orchestrate the test run. It does this by useing the Kubernetes api via client-go library to talk set up the desires replicas of each unit. The test run consists of the following tests scenarios:
| Scenario | Loadbots | Webserver |
|---|---|---|
| Idle | 1 | 1 |
| Under load | 1 | 10 |
| Equal load | 10 | 10 |
| Over load | 100 | 10 |
| High load | 100 | 100 |
The maximum count of replicas (default 100) can be set with –set aggregator.maxReplicas=….
Loadbots
The loadbots have the task to run a predefined level of queries per second. Vegeta publishes detailed statistics which will be fetched and evaluated by the aggregator. This metrics are:
- Queries-Per-Second (QPS)
- Success-Rate
- Mean latency
- 99th percentile latency
Test results
When all tests are finishes the aggregator will print the following summary to its logs:
GENERATING SUMMARY OUTPUT Summary of load scenarios: 0. Idle : QPS: 10037 Success: 100.00 % Latency: 949.82µs (mean) 3.004154ms (99th)
- Under load: QPS: 10014 Success: 100.00 % Latency: 965.549µs (mean) 1.985838ms (99th)
- Equal load: QPS: 50078 Success: 100.00 % Latency: 982.519µs (mean) 7.213018ms (99th)
- Over load : QPS: 501302 Success: 100.00 % Latency: 198.21451ms (mean) 859.504601ms (99th)
- High load : QPS: 502471 Success: 100.00 % Latency: 239.26364ms (mean) 1.018523444s (99th) END SUMMARY DATA
Sources & further reading
Spotted something that needs another look?
Help improve this page →