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

129 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. **资源需求**: 确保集群有足够的资源支持增加的副本数