Документация: github.io/locust-k8s-operator/
v2.0 — Полная переработка на Go
Оператор был полностью переписан на Go, что принесло существенные улучшения:
| Улучшение | До (Java) | После (Go) |
|---|---|---|
Память |
~256 МБ |
~64 МБ |
Время запуска |
~60 с |
<1 с |
Фреймворк |
Java Operator SDK |
Operator SDK / controller-runtime |
Новые возможности v2.0
-
Нативная поддержка OpenTelemetry — экспорт трассировок и метрик напрямую через флаг
--otel -
Внедрение Secret и ConfigMap — безопасная передача учётных данных в виде переменных окружения или примонтированных файлов
-
Монтирование томов — поддержка PVC, ConfigMap и Secret с возможностью фильтрации по целевому компоненту (master / worker / оба)
-
Раздельные спецификации ресурсов — независимая настройка ресурсов для подов master и worker
-
Расширенный статус — отслеживание фаз, условий и состояния подключения воркеров
Руководство по миграции для пользователей версии v1.
Обзор
Оператор создан для того, чтобы сделать распределённое нагрузочное тестирование в облаке простым и удобным, а также обеспечить непрерывную интеграцию в рамках CI/CD. Вся система изначально спроектирована как cloud native и ориентирована на автоматизацию и практики CI. Одна из ключевых особенностей системы — способность горизонтально масштабироваться в соответствии с любыми требованиями к производительности.
Документация
Вся документация по проекту доступна по адресу github.io/locust-k8s-operator/.
Быстрый старт
Предварительные требования
-
Go 1.26+ для локальной разработки
-
Docker для сборки образов контейнеров
-
kubectl, настроенный для работы с вашим кластером
-
Helm 3.x для установки чарта
-
Kind (опционально, для локального E2E-тестирования)
Установка
Установите оператор с помощью Helm:
helm repo add locust-k8s-operator https://abdelrhmanhamouda.github.io/locust-k8s-operator
helm install locust-operator locust-k8s-operator/locust-k8s-operator
Или из репозитория:
helm install locust-operator charts/locust-k8s-operator/
Разработка
# Установить CRD
make install
# Запустить оператор локально (против настроенного кластера)
make run
# Запустить тесты
make test
# Запустить E2E-тесты (требуется Kind)
make test-e2e
# Собрать и отправить образ оператора
make docker-build docker-push IMG=<your-registry>/locust-operator:tag
Подробное описание настройки окружения для разработки см. в CONTRIBUTING.md.
Статус проекта
Проект активно поддерживается и находится в постоянном развитии. Если у вас есть пожелания или вопросы — создайте тикет. Если вы хотите внести вклад кодом или идеями — ознакомьтесь с разделом о контрибьюции.
Как внести вклад
Работы много — заходите, открывайте issues!
Также прочитайте CONTRIBUTING.md.
Лицензия
Проект распространяется с открытым исходным кодом под лицензией Apache-2.0 (подробности см. в файле LICENSE).