从 CI/CD 到微服务治理、从监控告警到快数据分析,企业内部要拉起一套"全功能 PaaS 平台"通常要装 10+ 个开源系统、串起 N 种协议、对接 K8s/VM/边缘节点。Erda 是百度开源的一站式云原生 PaaS 平台,把 DevOps、微服务治理、多云管理、边缘计算、快数据、监控都打包到一个集群里。这篇文章讲清楚容器化部署、四层 RBAC、和"它到底能做什么"。
阅读对象:要给中大型团队搭企业级 DevOps 平台、想整合 K8s + 微服务 + 监控的工具负责人
覆盖范围:Erda 2.2 quick-start 部署清单、平台/组织/项目/应用四层 RBAC、核心能力矩阵
一、为什么是 Erda
开源 PaaS 平台不少,但 Erda 的差异点是"全栈打包"——一个 Erda 集群能直接对外提供:
| 能力 | 对应模块 |
|---|---|
| DevOps | 流水线、代码质量、制品库、测试管理 |
| 微服务治理 | 注册中心、配置中心、API 网关、调用链 |
| 多云管理 | 多 K8s 集群接入、VM/裸机管理 |
| 边缘计算 | 边缘节点注册、边缘应用编排 |
| 快数据 | 实时计算、离线数仓、BI 报表 |
| 监控告警 | 指标采集、告警规则、通知 |
| 协作 | 工单、协同、权限、审计 |
When to use:中大型企业(5+ 开发团队、10+ 应用)想"一套平台打天下";或者已经有一堆 K8s 集群想统一管理。不适合:个人开发者(太重)、纯前端项目(用 Vercel/Netlify 更快)、纯离线数仓(用 ClickHouse + Superset 更专业)。
二、容器化部署
2.1 资源要求
| 资源 | 最低 | 推荐 |
|---|---|---|
| CPU | 4 核 | 8 核+ |
| 内存 | 8 GB | 16 GB+ |
| 磁盘 | 100 GB | 500 GB+ |
| Docker | 20.10.0+ | 最新稳定版 |
| Docker Compose | v2 | v2 |
2.2 quick-start 部署
| |
脚本会自动拉起 30+ 容器、初始化 MySQL/ES/Kafka/Redis/etcd/ZK、做服务发现、暴露 UI。
2.3 部署后的容器清单
| 服务 | 容器名 | 镜像 |
|---|---|---|
| MySQL | erda-mysql | erdaproject/mysql:5.7-quickstart |
| Elasticsearch | erda-elasticsearch | bitnami/elasticsearch:6-debian-10 |
| Cassandra | erda-cassandra | bitnami/cassandra:3-debian-10 |
| Kafka | erda-kafka | bitnami/kafka:2.8.0 |
| Redis | erda-redis | bitnami/redis:6.0-debian-10 |
| Redis Sentinel | erda-redis-sentinel | bitnami/redis-sentinel:6.0-debian-10 |
| Zookeeper | erda-zookeeper | bitnami/zookeeper:3.7.0 |
| etcd | erda-etcd | bitnami/etcd:3 |
| API 网关 | gateway | nginx:latest |
| UI | erda-ui | registry.erda.cloud/erda/ui-ce:1.3.0 |
| 核心服务(多模块) | erda-admin / erda-cmp / erda-collector / erda-core-services / erda-dicehub / erda-dop / erda-ecp / erda-eventbox / erda-gittar / erda-hepa / erda-monitor / erda-msp / erda-openapi / erda-orchestrator / erda-pipeline / erda-streaming | registry.erda.cloud/erda/erda:1.3.0-stable |
| KMS | erda-kms | erdaproject/kms:20200608 |
| Action Runner Scheduler | erda-action-runner-scheduler | registry.erda.cloud/erda/erda:1.3.0-stable |
| 认证 | kratos | oryd/kratos:v0.7.1-alpha.1-sqlite |
| 测试邮件 | mailslurper | oryd/mailslurper:latest-smtps |
2.4 host 配置
部署完成后,把内部域名指向本机:
| |
访问 http://erda.local 进入 Erda 平台首页。
生产环境:上述 quick-start 适合"先跑起来看效果"。生产环境要换 MySQL/ES/Kafka 集群部署、独立 KMS 证书、用外部 LDAP/SSO 替换默认认证。
三、四层 RBAC 模型
Erda 的权限模型分四层——平台 / 组织 / 项目 / 应用,每层都有独立的角色体系:
3.1 平台层
| 角色 | 菜单 | 权限 |
|---|---|---|
| 平台管理员 | 平台后台管理页面所有菜单 | 全部操作权限 |
| 平台审计成员 | 审计日志 | 查看权限 |
| 平台成员 | 无 | 无后台管理页面访问权限 |
3.2 组织层
组织(Organization)对应"公司的一个部门"或者"业务线"。
| 角色 | 菜单 | 权限 |
|---|---|---|
| 组织管理员 | DevOps 平台 / 微服务治理 / 快数据 / 多云 / 边缘 | 组织最高权限 |
| 组织研发工程师 | DevOps / 微服务治理 | 项目/应用级别权限 |
| 数据开发工程师 | DevOps / 快数据 | 项目/应用级别权限 |
| 组织运维工程师 | 多云管理 | 多云全部权限 |
| 边缘运维工程师 | 边缘计算 | 边缘全部权限 |
| 数据管理员 | DevOps / 微服务治理 / 快数据 | 项目/应用级别权限 |
| 报告人员 | DevOps | 仅"报告人员"角色 |
3.3 项目层
项目(Project)对应"一组应用"——比如电商系统里的"用户中心"+“订单中心”+“支付中心"是一个项目。
| 角色 | 菜单 | 权限 |
|---|---|---|
| 项目所有者 | 所有菜单 | 项目最高权限 |
| 研发主管 | 应用列表/项目协同/测试/项目大盘/扩展服务/资源/工单/项目设置 | 全部操作权限 |
| 项目经理 | 同上 | 无应用创建/删除/修改 |
| 产品经理 | 同上(少几个) | 无应用管理、无项目成员管理 |
| 研发工程师 | 同上 | 无应用管理、成员管理;无测试/预发/生产环境编辑和部署 |
| 测试工程师 | 同上 | 无应用管理、成员管理 |
| 报告人员 | 工单 | 仅工单提交/查看 |
3.4 应用层
应用(Application)对应"一个微服务”。
| 角色 | 菜单 | 权限 |
|---|---|---|
| 应用所有者 | 所有菜单 | 应用最高权限 |
| 应用主管 | 代码仓库/流水线/API设计/部署/代码质量/制品/应用设置 | 全部操作权限 |
| 运维工程师 | 同上(少应用设置) | 目前与研发工程师一致,无测试/预发/生产环境管理 |
| 研发工程师 | 同上 | 无应用设置 |
| 测试工程师 | 同上 | 无应用设置、无开发环境管理 |
权限传递:上层角色自动继承下层权限,例如"项目所有者"自动获得该项目下所有应用的"应用所有者"权限。
四、核心能力
4.1 DevOps 流水线
可视化编排 CI/CD:
- 源码(Git)→ 构建(Maven/Gradle/Node.js/Docker)→ 测试 → 制品(Image/Jar/Package)→ 部署(K8s/VM/边缘)
- 触发方式:Webhook / 定时 / 手动 / API
- 多环境支持:dev/staging/prod 流水线模板可复用
4.2 微服务治理
基于 K8s Service Mesh + 自研扩展:
- 注册中心:自动同步 K8s Service
- 配置中心:Nacos/Spring Cloud Config 适配
- API 网关:流量路由、限流、熔断、灰度
- 调用链:基于 OpenTelemetry/SkyWalking
4.3 多云管理
接入多个 K8s 集群(公有云/私有云/裸金属),统一面板:
- 集群健康检查
- 工作负载、存储、网络统一查看
- 跨集群应用迁移
4.4 边缘计算
把 K8s 节点扩展到边缘设备(工厂车间、零售门店):
- 边缘节点注册、离线运行
- 边缘应用编排、灰度推送
- 边缘节点监控
4.5 快数据
实时计算 + 离线数仓:
- 实时:Kafka → Flink → Druid/ClickHouse
- 离线:Hive/Spark 任务调度
- BI 报表:自助拖拽 Dashboard
五、踩坑清单
- 资源不够起不来——quick-start 至少 4C8G,生产推荐 8C16G+
- 镜像拉取慢——Erda 用了
registry.erda.cloud,国内需要配 docker mirror - 初始化失败——多半是 MySQL/ES 启动顺序问题,看
docker logs erda-migration找原因 - UI 502——
gateway容器没起来,或者erda.local域名没指对 - 升级断裂——Erda 2.x → 3.x 是大版本升级,breaking change 较多,先看 release notes
- 不熟概念——“平台/组织/项目/应用"四层模型和传统"用户-角色-权限"三元模型有差异,新用户 onboard 建议看官方视频教程
六、参考资料
- Erda 官网:https://www.erda.cloud/
- GitHub:https://github.com/erda-project/erda
- 官方文档:https://docs.erda.cloud/
- 部署指南:https://docs.erda.cloud/2.2/manual/install/docker-install.html
下一步
- 只想做监控?→ Prometheus 监控告警体系 一文
- 只想做 PaaS 容器管理?→ Portainer 容器可视化管理 一文
- 一站式轻量监控?→ HertzBeat 轻量监控告警 一文
