Перейти к содержимому
Последнее обновление

Обзор 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.

Принцип работы Doris Operator

В этой модели пользователь задаёт желаемое состояние, а Operator непрерывно приводит фактическое состояние в соответствие с ним.

Архитектура​

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

Уровни архитектуры Doris Operator

После того как пользователь создаст пользовательский ресурс 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, в большинстве случаев начните с режима с совмещением вычислений и хранения. Выбирайте режим с разделением вычислений и хранения, когда вам явно нужны эластичные вычислительные группы, изоляция вычислений или архитектура на основе объектного хранилища.

ТребованиеРекомендуемый выбор
Быстро развернуть стандартный кластер DorisDorisCluster
Опробовать Doris без изучения большого числа понятийDorisCluster
Использовать разные вычислительные ресурсы для разных рабочих нагрузокDorisDisaggregatedCluster
Более гибко масштабировать вычислительные ресурсыDorisDisaggregatedCluster
Уже планируется использование объектного хранилища и FoundationDBDorisDisaggregatedCluster

Границы возможностей​

Doris Operator предназначен для управления ресурсами и жизненным циклом кластера Doris. Он не заменяет возможности управления Doris на уровне базы данных.

В его непосредственные задачи не входят:

  • Управление объектами SQL, такими как базы данных, таблицы, секции и индексы.
  • Управление импортом и экспортом данных или политиками оркестрации рабочих нагрузок.
  • Проектирование модели прав пользователей.
  • Автоматическое восстановление при любых сбоях.
  • Полное абстрагирование от всех проблем Kubernetes, хранилищ или сети.

Если кластер работает некорректно, для поиска причины по-прежнему необходимо сопоставлять состояние Operator, состояние ресурсов Kubernetes и журналы компонентов Doris.

Дальнейшие шаги​

Если вы только начинаете знакомиться с Doris Operator, читайте документы этой группы по порядку. Если вы устраняете конкретную проблему, сразу переходите на соответствующую страницу.

ЦельРекомендуемый документ
Понять устройство плоскости управления, плоскости данных и модели ReconcileАрхитектура Doris Operator
Понять, как пользовательские ресурсы Doris соотносятся с StatefulSet, Service, PVC и другими ресурсамиМодель ресурсов Doris Operator
Понять поведение при создании, масштабировании, изменении конфигурации и удаленииУправление жизненным циклом Doris Operator
Разобраться в полях состояния и порядке диагностики проблемСостояние Doris Operator и устранение неполадок