首页
/ 使用Helm Chart在Kubernetes上部署Apache Doris集群

使用Helm Chart在Kubernetes上部署Apache Doris集群

2025-06-27 03:36:32作者:曹令琨Iris

前言

Apache Doris作为一款高性能的MPP分析型数据库,在现代数据架构中扮演着重要角色。本文将详细介绍如何利用Helm Chart在Kubernetes环境中快速部署Apache Doris集群,实现存储与计算资源的统一管理。

Helm简介

Helm是Kubernetes的包管理工具,它通过Chart(图表)的形式定义、安装和升级复杂的Kubernetes应用。使用Helm部署Doris可以带来以下优势:

  1. 简化部署流程,避免手动配置的复杂性
  2. 提供标准化的部署模板
  3. 支持灵活的配置覆盖
  4. 便于版本管理和升级

准备工作

在开始部署前,请确保已具备以下环境:

  1. 可用的Kubernetes集群(版本1.16+)
  2. 已安装并配置kubectl命令行工具
  3. 已安装Helm(版本3.0+)
  4. 集群中配置了可用的StorageClass(用于持久化存储)

添加Doris Helm仓库

Doris官方提供了包含Operator和集群部署的Helm仓库,添加步骤如下:

# 添加Doris Helm仓库
helm repo add doris-repo https://charts.selectdb.com

# 更新仓库至最新版本
helm repo update doris-repo

# 验证仓库信息
helm search repo doris-repo

执行后应能看到类似输出,包含doris-operator和doris两个Chart:

NAME                          CHART VERSION    APP VERSION   DESCRIPTION
doris-repo/doris-operator     1.3.1            1.3.1         Doris-operator for doris creat ...
doris-repo/doris              1.3.1            2.0.3         Apache Doris is an easy-to-use ...

部署Doris Operator

基础部署

Operator是管理Doris集群生命周期的核心组件,执行以下命令进行默认安装:

helm install operator doris-repo/doris-operator -n doris --create-namespace

自定义配置部署

如需自定义Operator配置(如资源限制、副本数等),需先下载values.yaml文件:

helm show values doris-repo/doris-operator > operator-values.yaml

编辑完成后使用自定义配置安装:

helm install -f operator-values.yaml operator doris-repo/doris-operator -n doris

验证Operator状态

部署完成后,检查Operator Pod状态:

kubectl get pod -n doris

正常输出应显示Operator Pod状态为Running:

NAME                              READY   STATUS    RESTARTS   AGE
doris-operator-866bd449bb-zl5mr   1/1     Running   0          18m

部署Doris集群

基础部署

使用默认配置部署Doris集群(包含3个FE和3个BE节点):

helm install doriscluster doris-repo/doris -n doris

自定义配置部署

对于生产环境,建议根据实际需求自定义集群配置:

  1. 获取默认values文件:
helm show values doris-repo/doris > cluster-values.yaml
  1. 编辑cluster-values.yaml,常见配置项包括:

    • FE/BE节点数量
    • 资源请求与限制(CPU/内存)
    • 存储配置(StorageClass、容量)
    • 服务类型(NodePort/LoadBalancer)
    • 监控配置
  2. 使用自定义配置部署:

helm install -f cluster-values.yaml doriscluster doris-repo/doris -n doris

验证集群状态

部署完成后,检查集群Pod状态:

kubectl get pod -n doris

正常输出应显示所有FE和BE节点均为Running状态:

NAME                     READY   STATUS    RESTARTS   AGE
doriscluster-helm-fe-0   1/1     Running   0          1m39s
doriscluster-helm-fe-1   1/1     Running   0          1m39s
doriscluster-helm-fe-2   1/1     Running   0          1m39s
doriscluster-helm-be-0   1/1     Running   0          16s
doriscluster-helm-be-1   1/1     Running   0          16s
doriscluster-helm-be-2   1/1     Running   0          16s

访问Doris集群

部署完成后,可以通过以下方式访问Doris:

  1. MySQL客户端访问

    mysql -h <FE_SERVICE_IP> -P 9030 -uroot
    
  2. Web UI访问: 在浏览器中访问FE的HTTP端口(默认8030),查看集群状态和管理界面。

卸载Doris集群

卸载Doris集群

当不再需要Doris集群时,执行以下命令卸载:

helm uninstall doriscluster -n doris

卸载Doris Operator

确保没有运行的Doris集群后,可卸载Operator:

helm uninstall operator -n doris

最佳实践建议

  1. 生产环境配置

    • 建议FE节点至少3个以保证高可用
    • BE节点数量根据数据量和查询负载确定
    • 为关键组件设置合理的资源限制
  2. 存储规划

    • 为BE节点配置高性能存储(如SSD)
    • 根据数据增长预期设置足够的存储容量
  3. 监控与告警

    • 集成Prometheus监控Doris集群指标
    • 配置关键指标的告警规则
  4. 备份策略

    • 定期备份元数据
    • 考虑使用Kubernetes的VolumeSnapshot功能备份数据

常见问题排查

  1. Pod无法启动

    • 检查资源配额是否足够
    • 验证StorageClass是否可用
    • 查看Pod日志获取详细错误信息
  2. 集群无法选举Leader

    • 确认FE节点数量为奇数
    • 检查网络连通性
  3. 性能问题

    • 监控资源使用情况
    • 调整BE节点数量和资源配置

通过本文介绍的Helm Chart部署方式,您可以快速在Kubernetes环境中搭建Apache Doris集群,并根据实际需求灵活调整配置。这种部署方式特别适合需要快速弹性伸缩和统一管理的云原生环境。

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
152
1.97 K
kernelkernel
deepin linux kernel
C
22
6
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
426
34
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
239
9
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
190
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
988
394
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
193
274
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
936
554
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
75
69