Обзор Doris Operator
Doris Operator — официальный Kubernetes Operator для Apache Doris. Он объединяет опыт эксплуатации Doris с управлением ресурсами средствами Kubernetes, делая развертывание и эксплуатацию Doris в Kubernetes проще, эффективнее и удобнее.
Doris Operator расширяет API Kubernetes с помощью CustomResourceDefinitions (CRDs). После того как вы создадите пользовательский ресурс Doris, Operator создаёт и поддерживает соответствующие ресурсы Kubernetes, такие как StatefulSet, Service и PersistentVolumeClaim, а в некоторых сценариях выполняет действия на уровне метаданных Doris: регистрацию узлов, их вывод из эксплуатации или очистку.
В этом документе объясняется, какое место занимает Doris Operator, чем он управляет и когда его следует использовать. Документ поможет вам сначала сформировать правильное представление о его работе. Процедуры установки и развертывания описаны в документации по развертыванию в режимах с совмещением вычислений и хранения и с разделением вычислений и хранения.
Зачем использовать Doris Operator
Развертывание Doris в Kubernetes требует согласованной работы нескольких компонентов, обнаружения сервисов, монтирования конфигурации, привязки хранилищ, регистрации узлов, масштабирования и проверок работоспособности. По мере роста кластера или усложнения среды ручное управление этими ресурсами может приводить к разрозненности конфигурации, большому числу эксплуатационных операций и трудностям с отслеживанием состояния.
С Doris Operator вы декларативно описываете желаемое состояние кластера с помощью пользовательского ресурса Doris. Operator обеспечивает:
- Единый ресурс для описания топологии кластера.
- Автоматическое создание и поддержание
StatefulSet,Service, PVC и связанных ресурсов. - Запуск и изменение компонентов в порядке, определяемом их зависимостями.
- Объединение сведений о состоянии компонентов в поле
statusресурса CR. - Поддержку типовых операций: изменения конфигурации, масштабирования и последовательного обновления.
- Регистрацию узлов, их вывод из эксплуатации или очистку на уровне метаданных Doris в некоторых сценариях.
Как это работает
Doris Operator расширяет API Kubernetes с помощью CRDs. После того как вы создадите ресурс кластера Doris через kubectl, Helm или другой инструмент развертывания, Operator отслеживает этот ресурс и преобразует его описание в нативные ресурсы Kubernetes, такие как StatefulSet, Service и PersistentVolumeClaim.

В этой модели пользователь задаёт желаемое состояние, а Operator непрерывно приводит фактическое состояние в соответствие с ним.
Архитектура
Doris Operator можно представить в виде двух уровней: плоскости управления и плоскости данных. Плоскость управления включает Doris Operator, Reconciler, необязательную логику Webhook и сбор сводных сведений о состоянии. Она отслеживает пользовательские ресурсы Doris и приводит фактическое состояние в соответствие с желаемым. Плоскость данных включает нативные ресурсы Kubernetes, такие как StatefulSet, Service, PVC, HPA, а также Pods Doris, в которых работают компоненты Doris.

После того как пользователь создаст пользовательский ресурс Doris через kubectl, Helm или другой инструмент развертывания, Kubernetes API Server сохраняет желаемое состояние. Doris Operator отслеживает изменения ресурсов и выполняет логику Reconcile, а затем создаёт или обновляет соответствующие ресурсы Kubernetes. Такая многоуровневая модель упрощает управление множеством низкоуровневых ресурсов и сохраняет соответствие развертываний Doris стандартным платформам Kubernetes.
Поддерживаемые ресурсы кластеров
Doris Operator поддерживает два основных типа ресурсов кластеров:
| Ресурс | Режим развертывания | Основные компоненты | Типичный сценарий использования |
|---|---|---|---|
DorisCluster | Совмещение вычислений и хранения | FE, BE, CN, Broker | Развертывание стандартного кластера Doris с более простой моделью эксплуатации |
DorisDisaggregatedCluster | Разделение вычислений и хранения | MetaService, FE, ComputeGroup | Рабочие нагрузки, которым нужны эластичные вычислительные группы или изоляция вычислений |
DorisClusterиспользуется для развертывания с совмещением вычислений и хранения. Один ресурс может описывать образы FE, BE, CN и Broker, количество реплик, ресурсы, хранилища, конфигурацию и способы доступа.DorisDisaggregatedClusterиспользуется для развертывания с разделением вычислений и хранения. Он разделяет кластер на MetaService, FE и одну или несколько групп ComputeGroup, каждую из которых можно настраивать и обслуживать независимо.
Управляемые объекты
С точки зрения пользователя Doris Operator в основном управляет следующими объектами:
| Объект | Описание |
|---|---|
| Пользовательские ресурсы Doris | Желаемое состояние кластера, описанное, например, с помощью DorisCluster или DorisDisaggregatedCluster |
StatefulSet | Количество реплик, стабильная сетевая идентификация и последовательное обновление Pods компонентов Doris |
Service | Внутреннее взаимодействие и внешний доступ |
| PVC | Постоянное хранилище для компонентов с состоянием |
ConfigMap / Secret | Конфигурация, учётные данные и сведения о внешних зависимостях |
| HPA | Автоматическое масштабирование поддерживаемых компонентов |
status | Состояние компонентов, доступность и работоспособность кластера |
Выбор режима развертывания
Если вы впервые развертываете Doris в Kubernetes, в большинстве случаев начните с режима с совмещением вычислений и хранения. Выбирайте режим с разделением вычислений и хранения, когда вам явно нужны эластичные вычислительные группы, изоляция вычислений или архитектура на основе объектного хранилища.
| Требование | Рекомендуемый выбор |
|---|---|
| Быстро развернуть стандартный кластер Doris | DorisCluster |
| Опробовать Doris без изучения большого числа понятий | DorisCluster |
| Использовать разные вычислительные ресурсы для разных рабочих нагрузок | DorisDisaggregatedCluster |
| Более гибко масштабировать вычислительные ресурсы | DorisDisaggregatedCluster |
| Уже планируется использование объектного хранилища и FoundationDB | DorisDisaggregatedCluster |
Границы возможностей
Doris Operator предназначен для управления ресурсами и жизненным циклом кластера Doris. Он не заменяет возможности управления Doris на уровне базы данных.
В его непосредственные задачи не входят:
- Управление объектами SQL, такими как базы данных, таблицы, секции и индексы.
- Управление импортом и экспортом данных или политиками оркестрации рабочих нагрузок.
- Проектирование модели прав пользователей.
- Автоматическое восстановление при любых сбоях.
- Полное абстрагирование от всех проблем Kubernetes, хранилищ или сети.
Если кластер работает некорректно, для поиска причины по-прежнему необходимо сопоставлять состояние Operator, состояние ресурсов Kubernetes и журналы компонентов Doris.
Дальнейшие шаги
Если вы только начинаете знакомиться с Doris Operator, читайте документы этой группы по порядку. Если вы устраняете конкретную проблему, сразу переходите на соответствующую страницу.
| Цель | Рекомендуемый документ |
|---|---|
| Понять устройство плоскости управления, плоскости данных и модели Reconcile | Архитектура Doris Operator |
Понять, как пользовательские ресурсы Doris соотносятся с StatefulSet, Service, PVC и другими ресурсами | Модель ресурсов Doris Operator |
| Понять поведение при создании, масштабировании, изменении конфигурации и удалении | Управление жизненным циклом Doris Operator |
| Разобраться в полях состояния и порядке диагностики проблем | Состояние Doris Operator и устранение неполадок |