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

Настройка MetaService

Что вы узнаете в этой главе​

  • Как настроить параметры подключения MetaService к FoundationDB
  • Как выбрать версию образа MetaService
  • Как выделить MetaService подходящие вычислительные ресурсы
  • Как настроить параметры запуска MetaService с помощью ConfigMap
  • Как настроить тайм-аут проверки работоспособности и тайм-аут запуска MetaService

Обзор​

MetaService — компонент управления метаданными кластера Doris с разделением хранения и вычислений. Он используется только внутри кластера и недоступен извне. Это сервис без состояния, который обычно развёртывают в режиме active-standby. В этой главе описана настройка MetaService в ресурсе DorisDisaggregatedCluster.

В таблице ниже приведён полный набор параметров конфигурации:

Задача настройкиПоле конфигурацииОбязательностьКогда применяется
Подключение к FoundationDBfdb.configMapNamespaceName или fdb.addressОбязательноВо всех сценариях
Выбор образаimageНеобязательноЕсли версия образа из примера развёртывания вам не подходит
Выделение вычислительных ресурсовrequests / limitsНеобязательноЕсли нужно ограничить использование CPU и памяти
Настройка параметров запускаconfigMapsНеобязательноЕсли нужно изменить параметры запуска по умолчанию
Тайм-аут проверки работоспособностиliveTimeoutНеобязательноЕсли значение по умолчанию 180 секунд вам не подходит
Тайм-аут запускаstartTimeoutНеобязательноЕсли значение по умолчанию 300 секунд вам не подходит

1. Подключение к FoundationDB​

MetaService использует FoundationDB для хранения метаданных, поэтому необходимо настроить параметры доступа к FoundationDB. Есть два способа настройки в зависимости от того, как развёрнут FoundationDB:

Способ развёртывания FoundationDBРекомендуемый способ настройкиПоле конфигурации
В Kubernetes с помощью fdb-kubernetes-operatorУказать ссылку на ConfigMap, автоматически созданный Operatorfdb.configMapNamespaceName
Непосредственно на физических машинахУказать адрес доступа напрямуюfdb.address

Способ 1: Настройка параметров доступа через ConfigMap​

Если кластер FoundationDB развёрнут с помощью fdb-kubernetes-operator, можно напрямую использовать ConfigMap, который автоматически создаёт Operator. Этот ConfigMap содержит адрес доступа к FoundationDB:

spec:
metaService:
fdb:
configMapNamespaceName:
name: ${foundationdbConfigMapName}
namespace: ${namespace}

Описание параметров:

  • ${foundationdbConfigMapName}: имя ConfigMap
  • ${namespace}: пространство имён, в котором развёрнут FoundationDB

Чтобы найти ConfigMap, созданный fdb-kubernetes-operator, см. раздел Получение ConfigMap с параметрами доступа к FoundationDB в главе о развёртывании FoundationDB.

Способ 2: Прямое указание адреса доступа​

Если FoundationDB развёрнут на физических машинах, адрес доступа можно указать непосредственно в конфигурации MetaService:

spec:
metaService:
fdb:
address: ${fdbEndpoint}

Описание параметров:

  • ${fdbEndpoint}: адрес для доступа к FoundationDB

Чтобы найти этот адрес при развёртывании на физических машинах, см. раздел Получение fdb_cluster для развёртывания MetaService в главе о разделении хранения и вычислений.

2. Выбор образа​

Образ MetaService, указанный в примере развёртывания, может быть не самой последней версии. Чтобы задать версию образа, используйте следующий формат:

spec:
metaService:
image: ${msImage}

Описание параметров:

  • ${msImage}: образ MetaService для развёртывания. Используйте официальный образ MetaService от Doris (тег образа содержит префикс ms).

3. Выделение вычислительных ресурсов​

Используйте ограничения ресурсов Kubernetes, чтобы выделить MetaService подходящее количество CPU и памяти. Например, следующая конфигурация ограничивает ресурсы MetaService до 4 ядер CPU и 4Gi памяти:

spec:
metaService:
requests:
cpu: 4
memory: 4Gi
limits:
cpu: 4
memory: 4Gi

Примените приведённую выше конфигурацию к ресурсу DorisDisaggregatedCluster, который вы хотите развернуть.

4. Настройка конфигурации запуска​

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

Общий порядок действий:

ЭтапОписание
Входные данныеПользовательский файл конфигурации doris_cloud.conf
ДействиеСоздать ConfigMap и смонтировать его в каталог /etc/doris
РезультатMetaService запускается с пользовательской конфигурацией
Подсказка

Doris-Operator автоматически заполняет параметры FoundationDB в конфигурации запуска MetaService, поэтому при настройке конфигурации запуска задавать fdb_cluster не нужно и не следует.

Шаг 1: Создание пользовательского ConfigMap​

Файл конфигурации запуска должен называться doris_cloud.conf. Ниже приведён пример:

apiVersion: v1
data:
doris_cloud.conf: |
# // meta_service
brpc_listen_port = 5000
brpc_num_threads = -1
brpc_idle_timeout_sec = 30
http_token = greedisgood9999

# // doris txn config
label_keep_max_second = 259200
expired_txn_scan_key_nums = 1000

# // logging
log_dir = ./log/
# info warn error
log_level = info
log_size_mb = 1024
log_filenum_quota = 10
log_immediate_flush = false
# log_verbose_modules = *

# //max stage num
max_num_stages = 40
kind: ConfigMap
metadata:
name: doris-metaservice
namespace: default

Шаг 2: Монтирование пользовательской конфигурации запуска​

В ресурсе DorisDisaggregatedCluster смонтируйте созданный выше ConfigMap с помощью metaService.configMaps:

spec:
metaService:
configMaps:
- name: ${msConfigMapName}
mountPath: /etc/doris

Описание параметров:

  • ${msConfigMapName}: имя ConfigMap, содержащего конфигурацию запуска MetaService
  • mountPath: точка монтирования должна быть /etc/doris

Примените приведённую выше конфигурацию к ресурсу DorisDisaggregatedCluster, который вы хотите развернуть.

5. Настройка тайм-аутов проверок сервиса​

Doris Operator предоставляет два параметра тайм-аута для сервисов кластера с разделением хранения и вычислений:

Тип проверкиПоле конфигурацииЗначение по умолчаниюЭтапУсловие срабатывания
Проверка работоспособности (LivenessProbe)liveTimeout180 секундВо время работы сервисаЕсли проверка не проходит в течение времени, превышающего заданный порог, сервис принудительно перезапускается
Тайм-аут запускаstartTimeout300 секундВо время запуска сервисаЕсли время запуска превышает заданный порог, сервис принудительно перезапускается

Настройка тайм-аута проверки работоспособности​

Проверка работоспособности отслеживает состояние работающего сервиса. Например, чтобы задать тайм-аут проверки работоспособности в 30 секунд:

spec:
metaService:
liveTimeout: 30

Настройка тайм-аута запуска​

Тайм-аут запуска позволяет обрабатывать ситуации, когда сервис запускается слишком долго. Например, чтобы задать тайм-аут запуска в 120 секунд:

spec:
metaService:
startTimeout: 120