Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Starrocks
Ресурс Starrocks описывает инстанс аналитической СУБД StarRocks в пользовательском неймспейсе. StarRocks — OLAP-база для аналитики в реальном времени: принимает SQL-запросы, загружает данные через задания загрузки (в том числе Stream Load) и хранит колоночные данные на постоянных томах, управляемых оператором.
Каждый ресурс 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 для валидации политик размера ресурсов и значений конфигурации по умолчанию. Обязательное поле.
instance
Вычислительные ресурсы и хранилище кластера StarRocks:
memory.size— RAM для подов FE/BE. Для аналитических нагрузок обычно требуются гигабайты; минимум определяется связанным StarrocksClass.cpu.coresиcpu.coreFraction— лимиты CPU и доля запроса (request).persistentVolumeClaim.size— дисковое пространство для данных StarRocks. Уменьшить размер после создания нельзя.persistentVolumeClaim.storageClassName(опционально) — класс хранения для томов данных.
configuration
Переопределяемые пользователем настройки StarRocks, разрешённые в связанном StarrocksClass (spec.overridableConfiguration).
В белом списке сейчас только ключи с обновлением без перезапуска:
catalogTrashExpireSecond— время хранения удалённых объектов каталога на FE перед очисткой (catalog_trash_expire_second; обновление без перезапуска черезADMIN SET FRONTEND CONFIG);streamingLoadMaxMb— максимальный размер Stream Load в МБ (streaming_load_max_mb; обновление без перезапуска через BE HTTPupdate_config).
Значения класса по умолчанию, например enableUdf и loadProcessMaxMemoryLimitPercent в Starrocks.spec.configuration не входят. Их можно задать только на уровне класса, а изменение требует нового класса или перезапуска.
TLS
Опциональный TLS для HTTP-прокси FE (HTTPS, порт 8443). Порт MySQL-запросов (9030) TLS не использует.
- Без
tls— TLS выключен (только FE HTTP-прокси). mode: CertManager(по умолчанию, если заданtls) — сертификат через cert-manager; укажитеcertManager.clusterIssuerName.mode: CustomCertificate— ссылки на существующие TLS-секреты (customCertificate.serverTLSSecret/serverCASecret).
При включённом TLS агент записывает состояние сертификата в status.certificate.server (ttl — целые дни до истечения, failed — если Secret или смонтированный сертификат недоступны).
Клиенты MySQL к порту 9030 должны отключать TLS, например:
mysql -h<HOST> -P9030 -uroot -p'<PASSWORD>' --ssl=falseГде <HOST> — адрес FE, а <PASSWORD> — пароль пользователя root.
Учётные данные root
Оператор создаёт Secret <PREFIX>-<NAME>-root-creds с ключом password (алфавитно-цифровой, генерируется автоматически). Контейнер StarRocks и сайдкар агента получают его как STARROCKS_ROOT_PASSWORD. Здесь <PREFIX> — префикс имени ресурсов оператора, а <NAME> — имя ресурса Starrocks.
Условия статуса
Оператор выставляет условия Available, ConfigurationValid, LastValidConfigurationApplied и ScaledToLastValidConfiguration. При TLS также смотрите status.certificate.server. Проверка:
d8 k get starrocks -n my-team
d8 k describe starrocks analytics -n my-team
d8 k 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