Apache Doris在Kubernetes上部署FE节点的配置指南
2025-06-27 21:48:40作者:戚魁泉Nursing
前言
Apache Doris作为一款高性能的MPP分析型数据库,在存算分离架构下,FE(Frontend)节点承担着查询解析、规划等关键任务。本文将详细介绍在Kubernetes环境中部署和配置FE节点的最佳实践。
FE节点基础配置
计算资源配置
在Kubernetes环境中,我们可以通过requests和limits为FE节点分配计算资源。以下是一个典型的生产环境配置示例:
spec:
feSpec:
requests:
cpu: 8
memory: 8Gi
limits:
cpu: 8
memory: 8Gi
这个配置为FE节点分配了8个CPU核心和8GB内存。在实际部署时,建议根据以下因素调整资源配置:
- 集群规模:节点数量越多,单个FE节点负载可能越低
- 查询复杂度:复杂查询需要更多内存
- 并发量:高并发场景需要更多CPU资源
自定义启动配置
创建ConfigMap
FE节点的启动配置通过Kubernetes ConfigMap管理。以下是一个推荐的配置模板:
apiVersion: v1
kind: ConfigMap
metadata:
name: fe-configmap
namespace: default
labels:
app.kubernetes.io/component: fe
data:
fe.conf: |
CUR_DATE=`date +%Y%m%d-%H%M%S`
LOG_DIR = ${DORIS_HOME}/log
# JDK 17配置
JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED"
sys_log_level = INFO
sys_log_mode = NORMAL
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
enable_fqdn_mode=true
关键配置说明
- JVM参数:-Xmx和-Xms设置为相同值避免动态调整开销
- 日志配置:gc日志按时间和大小滚动,便于问题排查
- 端口配置:确保各服务端口不冲突
- FQDN模式:在K8s环境中必须设置为true
访问配置详解
Apache Doris在Kubernetes中支持三种服务暴露方式:
1. ClusterIP模式(默认)
适用于集群内部访问,配置简单:
kubectl -n doris get svc
输出示例:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
doriscluster-sample-fe-internal ClusterIP None <none> 9030/TCP 14m
doriscluster-sample-fe ClusterIP 10.1.118.16 <none> 8030/TCP,9020/TCP,9030/TCP,9010/TCP 14m
2. NodePort模式
适用于开发测试环境,支持静态和动态端口分配:
spec:
feSpec:
service:
type: NodePort
portMaps:
- nodePort: 31001 # 静态分配HTTP端口
targetPort: 8030
- nodePort: 31002 # 静态分配查询端口
targetPort: 9030
3. LoadBalancer模式
适用于生产环境,云厂商提供负载均衡:
spec:
feSpec:
service:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/load-balancer-type: "external"
持久化存储配置
自动模板配置
spec:
feSpec:
persistentVolumes:
- persistentVolumeClaimSpec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
自定义挂载点
spec:
feSpec:
persistentVolumes:
- mountPaths:
- /opt/apache-doris/fe/log
persistentVolumeClaimSpec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Gi
最佳实践建议
- 生产环境:推荐使用LoadBalancer+持久化存储
- 资源规划:预留20%的资源余量应对峰值负载
- 监控配置:确保配置了HeapDumpPath以便内存问题排查
- 日志管理:生产环境建议开启日志持久化
通过以上配置,您可以在Kubernetes环境中高效部署和管理Apache Doris的FE节点,为上层应用提供稳定的查询服务。
登录后查看全文
热门项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0203- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00
热门内容推荐
最新内容推荐
项目优选
收起
deepin linux kernel
C
27
12
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
607
4.05 K
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
暂无简介
Dart
849
205
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.47 K
829
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
24
0
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
924
772
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
235
152
昇腾LLM分布式训练框架
Python
131
157