Docker 部署 Apollo 分布式配置管理中心
Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
镜像拉取
# 配置服务,负责:配置的读取和推送 docker pull apolloconfig/apollo-configservice # 管理服务,负责:配置的管理和发布 docker pull apolloconfig/apollo-adminservice # 管理门户,负责:提供了可视化的管理界面 docker pull apolloconfig/apollo-portal
安装程序
1. 配置与管理服务
当需要隔离多种环境数据时,如:DEV、UAT、PRO,需要为每个环境同时安装 apollo-configservice 和 apollo-adminservice,并配置独立的 ApolloConfigDB 数据库
⑴ 创建 apollo-configservice(环境配置)数据库,sql脚本:https://github.com/apolloconfig/apollo/blob/master/scripts/sql/profiles/mysql-default/apolloconfigdb.sql,修改ServerConfig表中eureka为内网可互通的地址(可以替换成现有的eureka注册中心,填写多个实现高可用)
⑵ 注意替换成自己的 mysql 数据库
# 配置服务,负责:配置的读取和推送;服务于 apollo客户端
docker run -d \ --name apollo-configservice \ --restart=unless-stopped \ -p 8080:8080 \ -e SPRING_DATASOURCE_USERNAME=root \ -e SPRING_DATASOURCE_PASSWORD=123456 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \ -v /var/log/apollo/configservice:/opt/logs \ apolloconfig/apollo-configservice
# 管理服务,负责:配置的管理和发布,服务于 apollo-portal
docker run -d \ --name apollo-adminservice \ --restart=unless-stopped \ -p 8090:8090 \ -e SPRING_DATASOURCE_USERNAME=root \ -e SPRING_DATASOURCE_PASSWORD=123456 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \ -v /var/log/apollo/adminservice:/opt/logs \ apolloconfig/apollo-adminservice
2. 可视化管理界面
创建 apollo-portal(可视化管理界面)数据库,sql脚本:https://github.com/apolloconfig/apollo/blob/master/scripts/sql/profiles/mysql-default/apolloportaldb.sql
# 管理门户,负责:提供了可视化的管理界面
docker run -d \ --name apollo-portal \ --restart=unless-stopped \ -p 8070:8070 \ -e SPRING_DATASOURCE_USERNAME=root \ -e SPRING_DATASOURCE_PASSWORD=123456 \ -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.1:3306/ApolloPortalDB?characterEncoding=utf8" \ # 表示配置中心有几个环境,示例:dev,pro -e APOLLO_PORTAL_ENVS=dev,pro \ # DEV_META(测试环境)、PRO_META(生产环境)的 configservice 地址 -e DEV_META=http://172.17.0.1:8080 \ -e PRO_META=http://172.17.0.1:8080 \ -v /var/log/apollo/portal:/opt/logs \ apolloconfig/apollo-portal
访问测试
默认账号密码:apollo/admin
官方文档:https://www.apolloconfig.com/#/zh/README