Rancher下部署Apollo分布式配置中心
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
官网提供了单机部署及分布式部署方案,如果想要快速体验或者本地测试使用可参考官方Quick Start。如果要部署到生产环境可参照本文
一、 创建数据
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。
需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB。
1.创建ApolloPortalDB
通过各种MySQL客户端导入apolloportaldb.sql即可。
以MySQL原生客户端为例:
source /your_local_path/scripts/sql/apolloportaldb.sql
2.验证
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
3.创建ApolloConfigDB
通过各种MySQL客户端导入apolloconfigdb.sql即可。
以MySQL原生客户端为例:
source /your_local_path/scripts/sql/apolloconfigdb.sql
4.验证
select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB
二、创建 Apollo Config Service工作负载
Apollo 1.7.0版本开始会默认上传Docker镜像到Docker Hub,可以按照如下步骤获取
docker pull apolloconfig/apollo-configservice:${version}
1.创建密文用于环境变量
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
2.部署负载
这里部署2个pod,部署成功后可以看到2个pod正常启动
三、部署 Apollo Admin Service工作负载
环境变量可以复用Apollo Config Service工作负载的密文,Apollo Admin Service的默认端口为8090
部署Apollo Admin Service工作负载成功后,需要修改ApolloConfigDB数据库ServerConfig表中Eureka服务Url,多个service以英文逗号分隔。修改为Apollo Config Service的地址,默认端口为8080
四、部署Apollo Portal
1. 配置密文
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloPortalDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloPortalDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloPortalDB的密码
- APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
- DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准
2.部署Apollo Portal工作负载
Apollo Portal默认端口为8070
五、创建负载均衡,暴露服务
查看ApolloPortalDB,应该已经存在Users表,并有一条初始记录。初始用户名是apollo,密码是admin。
至此,已经完成整个部署过程。
Comments | NOTHING