Модуль managed-starrocks управляет инстансами StarRocks в Deckhouse Platform (DP). StarRocks — высокопроизводительная OLAP-СУБД для аналитики в реальном времени, хранилищ данных и BI-нагрузок.

Модуль предоставляет:

  • Автоматическое развёртывание — создаёт инстанс StarRocks при помощи простой YAML-конфигурации;
  • Управление конфигурацией — отдельный ресурс StarrocksClass для шаблонизации создания сервиса и гибкой валидации пользовательских параметров;
  • Настройка под аналитику — поддерживает указание параметров загрузки данных (streamingLoadMaxMb, loadProcessMaxMemoryLimitPercent) и управления каталогом (catalogTrashExpireSecond);
  • Статус — отображает текущее состояние развёрнутого инстанса StarRocks.

Подробнее с настройками модуля и примерами его использования можно ознакомиться в документации модуля.

Архитектура модуля

Для упрощения схемы приняты следующие допущения:

  • На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
  • Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.

Архитектура модуля managed-starrocks на уровне 2 модели C4 и его взаимодействие с другими компонентами DP изображены на следующей диаграмме:

Архитектура модуля managed-starrocks

Компоненты модуля

Модуль состоит из следующих компонентов:

  1. Managed-starrocks-operator (Deployment) — оператор Kubernetes, состоящий из одного контейнера manager и выполняющий следующие операции:

    • согласование состояния кастомных ресурсов Starrocks во всех пользовательских неймспейсах. Кастомные ресурсы Starrocks и StarrocksClass определяют настройки инстанса StarRocks;

    • создание и управление кастомным ресурсом Certificate и ресурсами StatefulSet, Service, Secret, ConfigMap и PersistentVolumeClaim, относящимися к инстансу StarRocks.

  2. Managed-starrocks-webhook (Deployment) — компонент, состоящий из одного контейнера manager.

    Компонент выполняет валидацию и мутацию кастомных ресурсов Starrocks, а также мутацию кастомного ресурса StarrocksClass с помощью механизмов Validating/Mutating Admission Controllers.

  3. D8ms-sr-<INSTANCE_NAME> (StatefulSet) — компонент, отвечающий за запуск и работу инстанса StarRocks. Создаётся компонентом managed-starrocks-operator.

    Состоит из следующих контейнеров:

    • agent — сайдкар-контейнер, который отслеживает и обновляет статус TLS-сертификата, а также выполняет настройку инстанса;
    • starrocks — основной контейнер.

Взаимодействия модуля

Модуль взаимодействует с компонентом kube-apiserver:

  • управляет кастомными ресурсами Starrocks и Certificate;
  • следит за кастомными ресурсами StarrocksClass;
  • управляет ресурсами StatefulSet, Service, Secret, ConfigMap и PersistentVolumeClaim.

С модулем взаимодействуют следующие внешние компоненты:

  1. Kube-apiserver — валидирует и мутирует кастомные ресурсы Starrocks, мутирует кастомные ресурсы StarrocksClass.

  2. Пользовательские приложения — отправляют запросы к инстансу StarRocks.

Дополнительные ресурсы