3.8 KiB
3.8 KiB
StarRocks 高可用集群部署
概述
本项目使用 StarRocks Kubernetes Operator 直接部署高可用 StarRocks 集群。
组件架构
- Frontend (FE): 3个副本,负责元数据管理和查询协调
- Backend (BE): 3个副本,负责数据存储和计算
- Compute Node (CN): 2个副本,提供弹性计算能力
文件说明
1. ha-starrocks-cluster.yaml
高可用 StarRocks 集群的主要配置文件,包含:
- FE、BE、CN 组件的副本数和镜像配置
- Pod 反亲和性配置,确保高可用
- 服务配置和环境变量
2. starrocks-configmaps.yaml
各组件的配置文件:
- FE配置: 日志、端口、JVM参数等
- BE配置: 存储、端口、日志级别等
- CN配置: 计算节点端口和日志配置
3. ha-starrocks-values.yaml
Helm values 配置文件(用于参考)
4. values.yaml
Helm Chart 的默认值配置(用于现有集群)
5. vpa.yaml
垂直 Pod 自动扩缩容配置
部署步骤
1. 应用配置
# 首先应用 ConfigMap 配置
kubectl apply -f starrocks-configmaps.yaml
# 然后应用 StarRocks 集群配置
kubectl apply -f ha-starrocks-cluster.yaml
2. 检查部署状态
# 检查 StarRocks 集群状态
kubectl get starrockscluster -n freeleaps-data-platform
# 检查 Pod 状态
kubectl get pods -n freeleaps-data-platform -l app=starrocks
# 检查服务状态
kubectl get svc -n freeleaps-data-platform -l app=starrocks
3. 查看日志
# 查看 FE 日志
kubectl logs -n freeleaps-data-platform -l app.kubernetes.io/component=fe
# 查看 BE 日志
kubectl logs -n freeleaps-data-platform -l app.kubernetes.io/component=be
# 查看 CN 日志
kubectl logs -n freeleaps-data-platform -l app.kubernetes.io/component=cn
高可用特性
- FE高可用: 3个FE节点,支持自动故障转移
- BE高可用: 3个BE节点,数据多副本存储
- CN弹性: 支持水平扩展和自动扩缩容
- Pod反亲和性: 确保组件分布在不同节点上
- 自动故障恢复: Operator自动管理集群状态
网络配置
- 内部服务: 使用ClusterIP类型
- 端口映射:
- FE: 8030(HTTP), 9010(编辑日志), 9020(RPC), 9030(查询)
- BE: 8040(HTTP), 9050(心跳), 8060(BRPC), 9060(BE端口)
- CN: 8040(HTTP), 9050(心跳), 8060(BRPC), 9060(Thrift)
存储配置
- FE元数据: 使用现有存储配置
- BE数据: 使用现有存储配置
- CN缓存: 使用现有存储配置
- 数据持久化: 支持PVC自动创建和绑定
监控和运维
- 健康检查: 内置就绪和存活探针
- 日志收集: 结构化日志输出
- 资源监控: 支持Prometheus指标收集
- 自动扩缩容: VPA支持垂直资源调整
- Operator管理: 自动集群生命周期管理
升级和回滚
# 升级集群配置
kubectl apply -f ha-starrocks-cluster.yaml
# 回滚到上一个版本
kubectl rollout undo deployment/starrocks-operator -n freeleaps-data-platform
# 查看集群状态
kubectl describe starrockscluster freeleaps-starrocks -n freeleaps-data-platform
故障排除
# 检查集群状态
kubectl describe starrockscluster freeleaps-starrocks -n freeleaps-data-platform
# 检查 Pod 事件
kubectl get events -n freeleaps-data-platform --sort-by='.lastTimestamp'
# 检查 Operator 日志
kubectl logs -n freeleaps-data-platform -l app=starrocks-operator
# 检查存储状态
kubectl get pvc -n freeleaps-data-platform
kubectl get pv
注意事项
- 现有集群: 此配置将升级现有的
freeleaps-starrocks集群 - 数据安全: 升级过程中数据不会丢失
- 滚动更新: Operator 会自动进行滚动更新,确保服务连续性
- 资源需求: 确保集群有足够的资源支持增加的副本数