Rancher下部署Apollo分布式配置中心


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。

至此,已经完成整个部署过程。

需要注意的是,apollo-configservice和apollo-adminservice是基于内网可信网络设计的,所以出于安全考虑,请不要将apollo-configservice和apollo-adminservice直接暴露在公网。

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Rancher下部署Apollo分布式配置中心


愿你勿忘初心,并从一而终