Locust Kubernetes Operator v2.0: переписан на Go

Логотип Locust Kubernetes Operator

Документация: 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, сканирования безопасности и качества кода

Обзор

Оператор создан для того, чтобы сделать распределённое нагрузочное тестирование в облаке простым и удобным, а также обеспечить непрерывную интеграцию в рамках 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).

© 2026 meganuke