# 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. 应用配置 ```bash # 首先应用 ConfigMap 配置 kubectl apply -f starrocks-configmaps.yaml # 然后应用 StarRocks 集群配置 kubectl apply -f ha-starrocks-cluster.yaml ``` ### 2. 检查部署状态 ```bash # 检查 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. 查看日志 ```bash # 查看 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管理**: 自动集群生命周期管理 ## 升级和回滚 ```bash # 升级集群配置 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 ``` ## 故障排除 ```bash # 检查集群状态 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. **资源需求**: 确保集群有足够的资源支持增加的副本数