Featured image of post Erda 云原生 PaaS 平台:DevOps / 微服务 / 多云 一站式

Erda 云原生 PaaS 平台:DevOps / 微服务 / 多云 一站式

Erda 2.2 容器化部署清单、quick-start 脚本、平台/组织/项目/应用四层 RBAC、DevOps 流水线、微服务治理、边缘计算、快数据

从 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 资源要求

资源最低推荐
CPU4 核8 核+
内存8 GB16 GB+
磁盘100 GB500 GB+
Docker20.10.0+最新稳定版
Docker Composev2v2

2.2 quick-start 部署

1
2
3
4
5
6
# 下载 erda-release-2.2
# 把 quick-start 目录下载到 /home/docker/erda
cd /home/docker/erda

# 执行安装脚本
sh quick-start.sh

脚本会自动拉起 30+ 容器、初始化 MySQL/ES/Kafka/Redis/etcd/ZK、做服务发现、暴露 UI。

2.3 部署后的容器清单

服务容器名镜像
MySQLerda-mysqlerdaproject/mysql:5.7-quickstart
Elasticsearcherda-elasticsearchbitnami/elasticsearch:6-debian-10
Cassandraerda-cassandrabitnami/cassandra:3-debian-10
Kafkaerda-kafkabitnami/kafka:2.8.0
Rediserda-redisbitnami/redis:6.0-debian-10
Redis Sentinelerda-redis-sentinelbitnami/redis-sentinel:6.0-debian-10
Zookeepererda-zookeeperbitnami/zookeeper:3.7.0
etcderda-etcdbitnami/etcd:3
API 网关gatewaynginx:latest
UIerda-uiregistry.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-streamingregistry.erda.cloud/erda/erda:1.3.0-stable
KMSerda-kmserdaproject/kms:20200608
Action Runner Schedulererda-action-runner-schedulerregistry.erda.cloud/erda/erda:1.3.0-stable
认证kratosoryd/kratos:v0.7.1-alpha.1-sqlite
测试邮件mailslurperoryd/mailslurper:latest-smtps

2.4 host 配置

部署完成后,把内部域名指向本机:

1
2
echo "{{HOST_IP}} erda.local one.erda.local collector.erda.local openapi.erda.local" \
  | sudo tee -a /etc/hosts

访问 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

五、踩坑清单

  1. 资源不够起不来——quick-start 至少 4C8G,生产推荐 8C16G+
  2. 镜像拉取慢——Erda 用了 registry.erda.cloud,国内需要配 docker mirror
  3. 初始化失败——多半是 MySQL/ES 启动顺序问题,看 docker logs erda-migration 找原因
  4. UI 502——gateway 容器没起来,或者 erda.local 域名没指对
  5. 升级断裂——Erda 2.x → 3.x 是大版本升级,breaking change 较多,先看 release notes
  6. 不熟概念——“平台/组织/项目/应用"四层模型和传统"用户-角色-权限"三元模型有差异,新用户 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

下一步

使用 Hugo 构建
主题 StackJimmy 设计