Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Starrocks
Ресурс Starrocks описывает инстанс аналитической СУБД StarRocks в пользовательском namespace. StarRocks — OLAP-база для аналитики в реальном времени: принимает SQL-запросы, загружает данные через load jobs (в том числе Stream Load) и хранит колоночные данные на persistent volume, управляемых оператором.
Каждый ресурс Starrocks должен ссылаться на StarrocksClass, который задаёт допустимые размеры CPU/RAM и список параметров конфигурации, доступных для переопределения.
Базовый пример
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: analytics
namespace: my-team
spec:
starrocksClassName: default
tls:
mode: CertManager
certManager:
clusterIssuerName: selfsigned
configuration:
catalogTrashExpireSecond: 7200
instance:
memory:
size: 4Gi
cpu:
cores: 2
coreFraction: "50%"
persistentVolumeClaim:
size: 120GiПоля spec
starrocksClassName
Имя StarrocksClass для валидации политик sizing и значений конфигурации по умолчанию. Обязательное поле.
instance
Вычислительные ресурсы и хранилище кластера StarRocks:
memory.size— RAM для подов FE/BE. Для аналитических нагрузок обычно требуются гигабайты; минимум определяется связаннымStarrocksClass.cpu.coresиcpu.coreFraction— лимиты CPU и доля request.persistentVolumeClaim.size— дисковое пространство для данных StarRocks. Уменьшить размер после создания нельзя.persistentVolumeClaim.storageClassName(опционально) — storage class для томов данных.
configuration
Переопределяемые пользователем настройки StarRocks, разрешённые в связанном StarrocksClass (spec.overridableConfiguration).
В whitelist сейчас только hot-reloadable ключи:
catalogTrashExpireSecond— время хранения удалённых объектов каталога на FE перед очисткой (catalog_trash_expire_second; live черезADMIN SET FRONTEND CONFIG).streamingLoadMaxMb— макс. размер Stream Load в МБ (streaming_load_max_mb; live через BE HTTPupdate_config).
Дефолты класса вроде enableUdf и loadProcessMaxMemoryLimitPercent в Starrocks.spec.configuration не входят (только на классе; нужен новый класс / рестарт).
tls
Опциональный TLS для HTTP-прокси FE (HTTPS, порт 8443). MySQL query port (9030) TLS не использует.
- Без
tls— TLS выключен (только HTTP feproxy). mode: CertManager(по умолчанию, если заданtls) — сертификат через cert-manager; укажитеcertManager.clusterIssuerName.mode: CustomCertificate— ссылки на существующие TLS Secret (customCertificate.serverTLSSecret/serverCASecret).
При включённом TLS агент пишет здоровье сертификата в status.certificate.server (ttl — целые дни до истечения, failed — если Secret или смонтированный cert недоступны).
Клиенты MySQL к порту 9030 должны отключать TLS, например:
mysql -h<host> -P9030 -uroot -p'<password>' --ssl=falseУчётные данные root
Оператор создаёт Secret <prefix>-<name>-root-creds с ключом password (алфавитно-цифровой, генерируется автоматически). Контейнер StarRocks и sidecar агента получают его как STARROCKS_ROOT_PASSWORD.
Условия статуса
Оператор выставляет условия Available, ConfigurationValid, LastValidConfigurationApplied и ScaledToLastValidConfiguration. При TLS также смотрите status.certificate.server. Проверка:
kubectl get starrocks -n my-team
kubectl describe starrocks analytics -n my-team
kubectl get starrocks analytics -n my-team -o jsonpath='{.status.certificate}' ; echoПримеры использования
Минимальный инстанс
Наименьший размер, допустимый встроенным классом default (2 cores / 4Gi):
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: minimal
namespace: my-team
spec:
starrocksClassName: default
instance:
memory:
size: 4Gi
cpu:
cores: 2
coreFraction: "50%"
persistentVolumeClaim:
size: 10GiProduction-инстанс
Для более тяжёлых аналитических нагрузок и больших объёмов данных:
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Starrocks
metadata:
name: warehouse
namespace: analytics
spec:
starrocksClassName: production
configuration:
catalogTrashExpireSecond: 86400
streamingLoadMaxMb: 102400
instance:
memory:
size: 16Gi
cpu:
cores: 8
coreFraction: "100%"
persistentVolumeClaim:
size: 500Gi
storageClassName: fast-ssd