Perf Distributed Testing
Kubernetes-native distributed load testing for JMeter, k6, and Gatling. Helm charts and Docker images for each tool's native distributed architecture.
Free Community · Enterprise £1,000/yr
After purchase, your license key is emailed by Lemon Squeezy. Use it on the download page to get registry credentials and Helm chart access.
What's Included
Overview
perf-distributed-testing provides production-ready Kubernetes Helm charts and Docker images for distributed load testing across JMeter, k6, and Gatling. Each tool uses its native distributed architecture — no compromise, no workarounds.
Deploy as many pods as your cluster can provide. Scale load horizontally with a single Helm value change.
Why Three Separate Charts?
JMeter, k6, and Gatling each have fundamentally incompatible distributed models:
| Tool | K8s Workload | Coordination |
|---|---|---|
| JMeter | StatefulSet + Job | Java RMI (ports 1099, 50000) |
| k6 | Deployment | None — stateless segment runners |
| Gatling | StatefulSet + Job | Akka remoting (port 2552) |
A single unified chart cannot support all three without forcing every tool into an unnatural pattern. Each chart uses the right Kubernetes primitives for its tool.
Key Features
JMeter — RMI Controller-Workers
A StatefulSet gives workers predictable DNS names. The workerHosts Helm helper generates the exact -R flag from pod ordinals. An init container waits for all workers via DNS before the controller Job starts, so JMeter never attempts to connect to a pod that isn’t ready.
k6 — Stateless Segment Runners
k6 runners are stateless and interchangeable — a Deployment is the right fit. Each runner receives a RUNNER_INDEX and RUNNERS_TOTAL to calculate its independent slice of the virtual user load. Metrics stream to Prometheus or InfluxDB.
Gatling — Akka IP Discovery
Gatling uses IP addresses (not DNS names) for Akka remoting. An init container runs kubectl get pods to discover worker IPs and writes them to a shared volume. The master reads this file to form the Akka cluster. RBAC is created automatically.
Pricing Tiers
| Feature | Community | Enterprise |
|---|---|---|
| All three Helm charts (JMeter, k6, Gatling) | ✓ | ✓ |
| Private registry Docker images | ✓ | ✓ |
| Unlimited pods / workers / runners | ✓ | ✓ |
| Priority email support (next business day SLA) | — | ✓ |
| Architecture guidance & Helm values review | — | ✓ |
| Named account contact | — | ✓ |
| Price |
Free
|
£1,000
/year
|
| Get Free Access | Buy Enterprise |
30-day money-back guarantee · Annual license · Apache-2.0 source
Quick Start
# 1. Get your free license key at martkos-it.co.uk/store/perf-distributed-testing-download
# 2. Get a registry token and create the imagePullSecret
TOKEN=$(curl -s https://updates.martkos-it.co.uk/api/v1/registry-token \
-H "X-License-Key: YOUR_LICENSE_KEY" \
-H "X-Product: perf-distributed-testing" | jq -r .token)
kubectl create secret docker-registry martkos-registry \
--docker-server=registry.martkos-it.co.uk \
--docker-username=your@email.com \
--docker-password="$TOKEN" \
--namespace perf-testing
# 3. Load your test plan
kubectl create configmap my-test-plan \
--from-file=test-plan.jmx=./test.jmx \
--namespace perf-testing
# 4. Deploy
helm install my-test oci://ghcr.io/markslilley/charts/perf-jmeter \
--version 1.0.0 \
--namespace perf-testing \
--set test.configMapName=my-test-plan \
--set worker.replicas=3 \
--set global.imagePullSecrets[0].name=martkos-registry
FAQ
Do I need a license key to use the Helm charts?
The Helm charts are published to GHCR OCI and are publicly accessible — no license key required to pull them. The license key gates access to the pre-built Docker images from the private registry at registry.martkos-it.co.uk. You can also build images from source (Apache-2.0) without a key.
What’s the difference between Community and Enterprise?
Both tiers get identical technical access to all three charts and all three Docker images. Enterprise adds a priority support SLA (next business day response), architecture guidance, and a named contact at Martkos IT.
How many workers can I run?
Unlimited. There is no license-enforced cap on the number of pods, workers, or runners.
Which Kubernetes versions are supported?
Kubernetes 1.24+ is required for batch/v1 Job GA and stable StatefulSet DNS. Helm 3.10+ is required for helm test and OCI chart support.