Apollo多环境docker部署¶
更新日期 2022-08-18
- 2022-08-18 修改地址说明
- 2022-08-17 增加说明
- 2022-7-21 创建文档
开发环境
- centos 7
- MySQL 5.7
- Docker 18.03.1-ce
- apollo 1.9.2
Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置, 配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
我们使用docker部署apollo,需要部署2个环境:DEV、FAT。假设部署在服务器 x.x.x.1 上。
最后部署了5个进程
- apollo-portal
- apollo-adminservice-AnRFDev-FAT
- apollo-configservice-AnRFDev-FAT
- apollo-adminservice-AnRFDev-DEV
- apollo-configservice-AnRFDev-DEV
数据库准备¶
先把基础的东西弄好。这里使用的是MySQL 5.7,数据库部署过程略。数据库可以运行在其他服务器,或者本地服务器。这里假设MySQL在同一个服务器上。
在mysql里初始化3个数据库。我们需要的是1个portal,2个config。
sql文件参考github:
环境不同的话可以修改数据库名字。把 apolloconfigdb.sql 里面的数据库名字改为 ApolloConfigDBDEV
或者 ApolloConfigDBFAT
我们可以用workbench执行sql,得到3个数据库。分别是:
- ApolloConfigDBDEV
- ApolloConfigDBFAT
- ApolloPortalDB
数据库配置¶
要把Config数据库里的eureka.service.url
配置正确。我们直接修改数据库里的值。
- DEV使用端口
- config: 8091
- admin: 8090
- FAT使用端口
- config: 8093
- admin: 8092
DEV¶
ApolloConfigDBDEV.ServerConfg
key | value |
---|---|
eureka.service.url | http://x.x.x.1:8091/eureka/ |
FAT¶
ApolloConfigDBFAT.ServerConfg
key | value |
---|---|
eureka.service.url | http://x.x.x.1:8093/eureka/ |
部署 DEV 环境¶
DEV configservice¶
首选获取镜像 apollo-configservice:1.9.2
启动DEV环境的configservice
docker run -p 8091:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.1:3317/ApolloConfigDBDEV?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=<你的数据库密码> \
-d -v /root/rustfisher/apollo/dev/config/logs:/opt/logs --name apollo-configservice-AnRFDev-DEV apolloconfig/apollo-configservice:1.9.2
修改Home Page Url
¶
这步必须做,否则用的是容器的ip,别人连不上。
进入容器去改 startup.sh
端口要对应docker映射出去的。保存脚本后,退出容器。然后重启容器。
DEV adminservice¶
获取docker镜像 apollo-adminservice:1.9.2
docker run -p 8090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.1:3317/ApolloConfigDBDEV?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=<你的数据库密码> \
-d -v /root/rustfisher/apollo/dev/config/admin/logs:/opt/logs --name apollo-adminservice-AnRFDev-DEV apolloconfig/apollo-adminservice:1.9.2
修改 Home Page Url¶
和上面的类似,进入容器去修改启动脚本 startup.sh
保存脚本后,退出容器。然后重启容器。
部署 FAT 环境¶
方法与上面DEV的类似,但是要修改对应端口和路径。
部署portal¶
我们前面先把config和admin服务部署好。最后来部署portal服务。
获取apollo-portal:1.9.2
docker run -p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.1:3317/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=<你的数据库密码> \
-e APOLLO_PORTAL_ENVS=dev,fat \
-e DEV_META=http://x.x.x.1:8091 -e FAT_META=http://x.x.x.1:8093 \
-d -v /root/rustfisher/apollo/portal/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal:1.9.2
部署OK后,打开浏览器查看 portal: http://x.x.x.1:8070/
默认账号 apollo/admin
端口开放¶
某些云服务器会设置有安全组,需要去控制台修改安全组规则,允许一下我们用到的端口。
同时还需要检查服务器上的防火墙,ufw或者是firewall
firewall简单使用¶
添加允许的端口
其中–permanent的作用是使设置永久生效,不加的话机器重启之后失效重新载入一下防火墙设置,使设置立即生效,执行下命令,设置才会生效
可通过如下命令查看是否生效
如下命令可查看当前系统打开的所有端口
默认密码¶
部署成功后,到portal的页面,改掉默认的密码
管理员工具 - 用户管理
修改启动配置¶
docker启动镜像后,想要修改启动配置比较麻烦。我们可以从Apollo的启动脚本入手。
修改数据库密码¶
假设Apollo用的数据库密码修改了,而我们前面用的是-e参数填的密码。
可以进容器里,修改启动配置scripts/startup.sh,在原来的设置密码下添加我们的配置
修改DEV环境地址¶
假设要修改DEV的地址
一方面要去数据库里修改 ApolloConfigDBDEV.ServerConfg
,改成新的地址
然后进入portal容器里,给 apollo-portal/scripts/startup.sh
增加参数
FAT环境同理
参考¶
扩展阅读¶
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~