freeleaps-ops/cluster/manifests/freeleaps-data-platform/star-rocks/README.md

3.8 KiB
Raw Blame History

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

注意事项

  1. 现有集群: 此配置将升级现有的 freeleaps-starrocks 集群
  2. 数据安全: 升级过程中数据不会丢失
  3. 滚动更新: Operator 会自动进行滚动更新,确保服务连续性
  4. 资源需求: 确保集群有足够的资源支持增加的副本数