跳到主要内容

配置 MetaService

学完本章节你将能够

  • 配置 MetaService 访问 FoundationDB 的连接信息
  • 自定义 MetaService 镜像版本
  • 为 MetaService 分配合适的计算资源
  • 通过 ConfigMap 自定义 MetaService 启动参数
  • 配置 MetaService 的存活探测超时和启动超时

概述

MetaService 是 Doris 存算分离集群的元数据管理组件,仅供集群内部使用,不对外暴露。它属于无状态服务,通常采用主备模式部署。本章介绍如何在 DorisDisaggregatedCluster 资源中配置 MetaService。

完整配置项概览如下:

配置场景配置字段是否必选适用场景
连接 FoundationDBfdb.configMapNamespaceNamefdb.address必选所有场景
自定义镜像image可选部署样例镜像版本不满足需求时
分配计算资源requests / limits可选需要限制 CPU 和内存使用时
定制化启动参数configMaps可选需要修改默认启动参数时
存活探测超时liveTimeout可选默认 180 秒不满足需求时
启动超时startTimeout可选默认 300 秒不满足需求时

1. 连接 FoundationDB

MetaService 依赖 FoundationDB 存储元数据,因此必须配置 FoundationDB 的访问信息。根据 FoundationDB 的部署方式不同,有两种配置方式:

FoundationDB 部署方式推荐配置方式配置字段
通过 fdb-kubernetes-operator 在 Kubernetes 上部署引用 Operator 自动生成的 ConfigMapfdb.configMapNamespaceName
直接在物理机上部署直接填写访问地址fdb.address

方式一:通过 ConfigMap 配置访问信息

如果 FoundationDB 集群通过 fdb-kubernetes-operator 部署,可直接使用该 Operator 自动生成的、包含 FoundationDB 访问地址的 ConfigMap:

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

参数说明:

  • ${foundationdbConfigMapName}:ConfigMap 的名称
  • ${namespace}:FoundationDB 部署所在的命名空间

查找 fdb-kubernetes-operator 生成的 ConfigMap,请参考部署 FoundationDB 章节的 获取包含 FoundationDB 访问信息的 ConfigMap

方式二:直接配置访问地址

如果 FoundationDB 部署在物理机上,则可在 MetaService 配置中直接指定访问地址:

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

参数说明:

  • ${fdbEndpoint}:可访问 FoundationDB 的地址信息

物理机部署情况下查找该地址,请参考存算分离章节 MetaService 部署获取 fdb_cluster 介绍

2. 自定义镜像

部署样例中 MetaService 配置的镜像可能不是最新版本。如需指定镜像版本,按如下格式配置:

spec:
metaService:
image: ${msImage}

参数说明:

  • ${msImage}:要部署的 MetaService 镜像。请使用 Doris 官方提供的 MetaService 镜像(镜像 tag 中包含 ms 前缀)。

3. 分配计算资源

通过 Kubernetes 资源限制为 MetaService 分配合适的 CPU 和内存。例如,限制为 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 会自动填充 MetaService 启动配置中关于 FoundationDB 的相关配置,因此定制化启动配置时无需(也不要)填写 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 资源中,通过 metaService.configMaps 挂载上述 ConfigMap:

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

参数说明:

  • ${msConfigMapName}:包含 MetaService 启动配置的 ConfigMap 名称
  • mountPath:挂载点必须为 /etc/doris

将上述配置更新到需要部署的 DorisDisaggregatedCluster 资源中。

5. 配置服务探测超时

Doris Operator 为存算分离集群服务提供两种超时参数配置:

探测类型配置字段默认值作用阶段触发条件
存活探测(LivenessProbe)liveTimeout180 秒服务运行期间探测失败超过阈值时,服务被强制重启
启动超时startTimeout300 秒服务启动阶段启动时间超过阈值时,服务被强制重启

存活探测超时配置

存活探测用于监控服务运行状态。例如,将存活探测超时配置为 30 秒:

spec:
metaService:
liveTimeout: 30

启动超时配置

启动超时用于应对服务启动时间过长的情况。例如,将启动超时配置为 120 秒:

spec:
metaService:
startTimeout: 120