OpenAerialMap项目在EKS集群部署eoAPI的技术实践
背景与目标
在OpenAerialMap项目的k8s基础设施中,团队需要部署eoAPI服务组件。该组件通过Helm chart方式提供,近期发布了v0.7.1版本包含多项重要改进。本文记录从技术选型到实际部署的全过程实践。
技术方案设计
核心组件架构
部署方案采用三层结构:
- PostgreSQL Operator:作为底层数据库管理组件
- eoAPI主服务:提供核心API功能
- eoAPI支持服务:包括监控、日志等辅助功能
关键技术选型
- Helm:作为Kubernetes包管理工具
- Helmfile:用于声明式管理Helm chart依赖关系
- AWS EKS:托管Kubernetes服务环境
实施过程
基础部署
初始部署脚本已完成开发并通过Pull Request提交,主要实现:
- 基础Helm chart安装
- 必要的RBAC权限配置
- 与Terraform管理组件的值传递
进阶优化
在基础部署完成后,团队进一步实施:
- 自动化部署流程:建立CI/CD流水线
- 值传递机制:将Terraform管理的配置值动态注入Helm chart
- 支持服务集成:包括监控告警等组件
关键技术实现细节
Helmfile的应用
采用Helmfile作为声明式中间层,主要解决:
- 变更检测与智能更新
- 多chart依赖管理
- 环境变量动态注入
权限控制方案
通过Terraform定义IAM角色后,将该角色传递给eoAPI chart实现:
- S3存储桶的安全访问
- 最小权限原则实施
- 统一身份管理
部署注意事项
- 顺序依赖:必须严格按PostgresOperator→eoAPI→支持服务的顺序部署
- TLS配置:支持服务chart需在eoAPI完成TLS配置后才能启用
- 权限传递:确保RBAC角色正确传递到pod实例
经验总结
本次部署实践验证了:
- Helmfile在复杂chart管理中的优势
- 混合架构(Terraform+Helm)的可行性
- 模块化部署方案的有效性
为后续GitOps实践奠定了良好基础,相关配置模板和文档已纳入项目知识库。未来可在此基础上进一步完善监控告警、自动伸缩等生产级特性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



