跳到主要内容

Doris Operator 资源模型

Doris Operator 的资源模型描述了 Doris 集群组件与 Kubernetes 原生资源之间的映射关系。理解这层映射后,更容易判断某个字段会影响哪些底层资源,也更容易定位部署和运维问题。

本文不展开所有字段。字段级配置请参考对应的部署和配置文档。

最小示例

下面示例展示了一个最小化的 DorisCluster。其中 FE 和 BE 会映射为对应的 StatefulSetService、PVC 等资源。

apiVersion: doris.apache.com/v1
kind: DorisCluster
metadata:
name: demo
namespace: doris
spec:
feSpec:
replicas: 3
image: apache/doris:fe-2.1.8
beSpec:
replicas: 3
image: apache/doris:be-2.1.8

概览

无论使用哪种部署形态,用户直接维护的都是 Doris 自定义资源。Operator 根据自定义资源创建 Kubernetes 原生资源,再由这些资源运行 Doris 组件。

Doris Operator resource model overview

DorisCluster

DorisCluster 用于存算一体部署,通常包含 FE、BE、CN、Broker 四类组件。

DorisCluster resource model

组件说明主要 Kubernetes 资源
FE负责元数据管理、SQL 接入和查询协调StatefulSet、internal Service、external Service、PVC
BE负责数据存储和执行StatefulSet、internal Service、external Service、PVC
CN承载弹性计算任务StatefulSet、internal Service、external Service、PVC、HPA
Broker外部存储访问代理;是否需要部署取决于 Doris 版本和业务场景StatefulSet、internal Service

DorisDisaggregatedCluster

DorisDisaggregatedCluster 用于存算分离部署,通常包含 MetaService、FE 和一个或多个 ComputeGroup。

DorisDisaggregatedCluster resource model

组件说明主要 Kubernetes 资源
MetaService存算分离集群的元数据服务StatefulSet、Service、PVC
FESQL 接入、查询协调和元数据访问入口StatefulSet、internal Service、external Service、PVC
ComputeGroup独立的计算资源组StatefulSet、internal Service、external Service、PVC
FoundationDB存算分离集群依赖的元数据存储外部服务或由 fdb-kubernetes-operator 管理

Service 类型

Doris Operator 会为不同用途创建不同的 Service。

Service 类型作用典型用途
internal Service稳定网络标识和组件内部通信StatefulSet DNS、组件发现、Pod 间访问
external Service对外访问入口客户端连接和外部系统访问

internal Service 通常不是业务访问入口。external Service 会根据场景配置为 ClusterIPNodePortLoadBalancer

存储

Doris 是有状态系统。FE、BE、CN、MetaService 和 ComputeGroup 都可能需要持久化目录。Operator 通过 PVC 模板绑定持久化存储。

需要重点关注:

  • Kubernetes 集群中是否有可用的 StorageClass。
  • PVC 容量是否满足数据和日志增长需求。
  • 访问模式是否符合场景要求。
  • Doris 配置中的目录是否与 PVC 挂载路径一致。

如果 PVC 无法绑定,Operator 会持续等待,对应 Pod 也无法启动。

配置与认证资源

Doris Operator 支持通过 ConfigMapSecret 管理配置和敏感信息。

资源常见用途
ConfigMapFE、BE、CN、Broker、MetaService、ComputeGroup 的启动配置
Secret密码、访问凭证和 keytab 等敏感信息
authSecretDoris Operator 用于节点注册、下线等管理动作的凭证
kerberosInfoKerberos 配置和 keytab 挂载
serviceAccount组件访问云服务或外部系统时使用的 Kubernetes ServiceAccount

配置变更是否触发重启,取决于具体字段和 Operator 设置。例如存算一体模式下,enableRestartWhenConfigChange 可以控制核心 ConfigMap 变更时是否触发滚动重启。

资源命名

Operator 创建的资源通常以前缀形式包含集群名和组件名,便于快速判断资源归属。

如果存算一体集群名为 demo,常见资源名如下:

demo-fe
demo-fe-internal
demo-fe-service
demo-be
demo-be-internal
demo-be-service
demo-cn
demo-cn-internal
demo-cn-service
demo-broker
demo-broker-internal

如果存算分离集群名为 demo,且 ComputeGroup 名为 adhoc-query,常见资源名如下:

demo-ms
demo-fe
demo-fe-internal
demo-adhoc-query
demo-adhoc-query-external

实际名称会随版本和配置略有差异。排障时应以 kubectl get 的结果为准。

组件依赖关系

资源模型不仅描述静态映射,也隐含组件依赖关系。

在存算一体集群中,FE 是其他组件注册和访问 Doris 元数据的入口:

Dependencies between components in DorisCluster

在存算分离集群中,MetaService 先就绪,FE 依赖 MetaService,ComputeGroup 再依赖 FE:

Dependencies between components in DorisDisaggregatedCluster

当上游组件未就绪时,下游组件可能持续等待或反复 Reconcile,这属于正常行为。更详细的创建和变更顺序见 Doris Operator 生命周期管理