Files
s3-balance/deploy
2025-10-21 19:59:28 +08:00
..
2025-10-04 15:19:54 +08:00
2025-09-13 22:41:00 +08:00
2025-09-13 22:41:00 +08:00
2025-10-21 19:59:28 +08:00
2025-09-13 22:30:40 +08:00
2025-09-13 22:30:40 +08:00

S3 Balance 部署指南

本目录包含 S3 Balance 服务的各种部署方案,从简单的 Docker Compose 到生产级的 Kubernetes 部署。

目录结构

deploy/
├── docker/                    # Docker 和 Docker Compose 部署
│   ├── docker-compose.yml     # Docker Compose 配置
│   ├── Dockerfile            # Docker 镜像构建文件
│   ├── start-monitoring.sh    # 一键启动脚本
│   └── config.docker.yaml    # Docker 环境配置
├── kubernetes/               # Kubernetes 原生部署
│   ├── namespace.yaml        # 命名空间
│   ├── configmap.yaml         # 配置映射
│   ├── deployment.yaml        # 部署配置
│   ├── service.yaml           # 服务暴露
│   └── ingress.yaml           # 入口配置
├── helm/                     # HELM Chart 部署
│   └── s3-balance/           # HELM Chart 目录
└── monitoring/               # 监控系统配置
    ├── prometheus.yml        # Prometheus 配置
    ├── s3_balance_alerts.yml # 告警规则
    └── grafana/              # Grafana 配置和仪表板

🐳 Docker Compose 部署(推荐开发环境)

快速启动(含完整监控栈)

cd deploy/docker
./start-monitoring.sh

手动启动

cd deploy/docker
docker-compose up -d

访问地址

配置文件

编辑 config.docker.yaml 来自定义:

  • 存储桶配置
  • 负载均衡策略
  • 监控指标设置

☸️ Kubernetes 部署(推荐生产环境)

基础部署

cd deploy/kubernetes
kubectl apply -f namespace.yaml
kubectl apply -f configmap.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

高可用部署

kubectl apply -f hpa.yaml  # 水平自动扩缩容
kubectl apply -f pdb.yaml  # Pod 中断预算

外部访问

kubectl apply -f ingress.yaml

配置说明

  • 使用 ConfigMap 管理配置文件
  • 支持 HPA 自动扩缩容
  • 集成集群 DNS 服务发现
  • 支持多环境配置dev/test/prod

📊 HELM Chart 部署(推荐企业环境)

安装 Chart

cd deploy/helm
helm install s3-balance ./s3-balance

自定义参数

helm install s3-balance ./s3-balance -f custom-values.yaml

升级版本

helm upgrade s3-balance ./s3-balance

HELM 优势

  • 参数化配置
  • 多环境管理
  • 版本控制
  • 依赖管理

🔧 监控集成

所有的部署方案都集成了完整的监控系统:

Prometheus 指标

  • S3 Balance 业务指标
  • 系统资源指标
  • 自定义应用指标

Grafana 仪表板

  • 服务概览面板
  • 性能分析面板
  • 容量监控面板
  • 错误率跟踪面板

告警规则

  • 存储桶健康状态告警
  • 高错误率告警
  • 高延迟告警
  • 容量使用率告警

🚨 部署要求

系统要求

  • Docker & Docker Compose开发环境
  • Kubernetes 1.19+(生产环境)
  • HELM 3.0+(企业环境)

资源要求

  • CPU: 0.5-2 core
  • Memory: 512MB-2GB
  • Storage: 1GB-100GB根据使用情况
  • Network: 内网访问存储桶

网络要求

  • 访问后端 S3 存储桶
  • Prometheus Pushgateway可选
  • 外部监控系统(可选)

📋 环境变量

S3 Balance

  • CONFIG_FILE: 配置文件路径
  • LOG_LEVEL: 日志级别 (debug/info/warn/error)
  • TZ: 时区设置

Prometheus

  • STORAGE_TSDB_RETENTION_TIME: 数据保留时间
  • WEB_ENABLE_LIFECYCLE: 启用生命周期管理

Grafana

  • GF_SECURITY_ADMIN_USER: 管理员用户名
  • GF_SECURITY_ADMIN_PASSWORD: 管理员密码
  • GF_USERS_ALLOW_SIGN_UP: 是否允许注册

🎯 最佳实践

生产环境建议

  1. 资源限制: 设置合理的CPU/内存限制
  2. 健康检查: 配置完整的探针检查
  3. 持久化: 重要数据使用持久化存储
  4. 备份: 定期备份配置和数据库
  5. 监控: 集成现有监控系统

高可用建议

  1. 多副本: 部署多个实例
  2. 负载均衡: 集群内负载均衡
  3. 自动扩缩容: 基于负载自动扩缩容
  4. 多区域: 跨可用区部署

安全建议

  1. 镜像安全: 使用官方基础镜像
  2. 访问控制: 配置RBAC权限
  3. 网络隔离: 使用网络策略
  4. 敏感信息: 使用Secret管理凭证

🔧 故障排除

常见问题

Pod 启动失败

kubectl describe pod <pod-name>
kubectl logs <pod-name>

配置错误

kubectl get configmap s3-balance-config -o yaml

服务无法访问

kubectl get service s3-balance-service
kubectl get ingress s3-balance-ingress

性能调优

  • 调整负载均衡策略
  • 优化数据库连接池
  • 配置合理的缓存策略
  • 监控资源使用情况

🔗 集成外部系统

已有 Prometheus

在外部 Prometheus 配置中添加:

scrape_configs:
  - job_name: 's3-balance'
    static_configs:
      - targets: ['s3-balance-service.default.svc.cluster.local:8080']

现有监控系统

  • 通过 exporters 暴露指标
  • 使用统一的日志格式
  • 集成告警通知渠道

📖 参考文献