1、分布式部署需要事先确定部署的环境以及部署方式,Apollo目前支持以下环境
(1)自定义环境
可以理解为自己本地的测试环境
(2)DEV
可以理解为开发环境
(3)FAT
可以理解为测试环境,相当于alpha环境(功能测试)
(4)UAT
可以理解为集成环境,相当于beta环境(回归测试)
(5)PRO
可以理解为生产环境
2、图解分布式部署
3、方案
具体部署方案,需根据自己的实际情况进行调整
(1)Portal部署在生产环境,相当于web端,通过它来直接管理多个环境
apollo-portal是配置的管理端,可以统一管理多套环境的配置(apollo节点)。也可以每套环境独立部署一个apollo-portal,只管理该环境的配置(apollo节点)。
apollo-portal需要访问ApolloPortalDB数据库。
(2)Config Service和Admin Service在每个环境都单独部署,使用独立的数据库
每个节点部署一个apollo-configservice和apollo-adminservice
每套环境可以部署多个节点,建议生产环境部署两个以上的节点。开发环境的节点个数可自行决定,可以只部署一个节点。
每套环境需要有一个独立的ApolloConfigDB数据库,同一套环境的apollo-configservice和apollo-configservice访问同一个ApolloConfigDB数据库。
4、服务器准备
5、apollo依赖安装
(1)根据我们规划的环境去逐一安装jdk环境
# jdk版本:1.8.0_211
# 安装略。若需安装请看jdk安装文档
# 分布式中每台服务器都要有JDK环境
(2)根据我们规划的环境去逐一安装mysql环境
# mysql版本:5.7.30
# 安装略。若需安装请看mysql安装文档
# 注意:生产环境下数据密码弄个复杂点,我这只是在本地测试用
# 部署mysql的服务器(总共5台)
192.168.35.102
192.168.35.108
192.168.35.118
192.168.35.128
192.168.35.138
# 每台数据库都新增mysql用户,用于apollo连接使用
mysql -uroot -p’root用户密码’
create user ‘apollo’@’%’ identified by ‘apollo123’;
grant all privileges on . to ‘apollo’@’%’ identified by ‘apollo123’;
flush privileges;
6、创建数据库并导入数据
(1)创建 “ApolloConfigDB”,用于apollo-configserver服务使用库
# 创建数据库并导入ApolloConfigDB.sql文件,服务器环境都有如下,这些服务器都需要执行如下操作
192.168.35.108
192.168.35.118
192.168.35.128
192.168.35.138
(2)在每套环境中都创建一个ApolloConfigDB数据库
mysql -uapollo -p’root123’
CREATE DATABASE ApolloConfigDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
(3)导入ApolloConfigDB.sql文件
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloConfigDB库执行sql文件
mysql -uapollo -p’root123’
use ApolloConfigDB;
source /data/opt/scripts/apolloconfigdb.sql
(4)调整ApolloConfigDB.ServerConfig表的数据
# configservice和adminservice部署在同一台机器,并当前环境只有一个节点时,则可以跳过此步骤
# configservice和adminservice部署不在同一台机器,并当前环境只有一个节点时,需要修改eureka.service.url值为当前环境的apollo-configservice的地址与端口,注意多个地址之间用英文逗 隔开
# configservice和adminservice部署不在同一台机器,并当前环境有多个节点时,需要修改eureka.service.url值为当前环境的apollo-configservice的地址与端口,注意多个地址之间用英文逗 隔开
# 在DEV环境中ApolloConfigDB.Serverconfig表中设置eureka.service.url为
http://192.168.35.105:8080/eureka/,http://192.168.35.106:8080/eureka/
# 在FAT环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为
http://192.168.35.115:8080/eureka/,http://192.168.35.116:8080/eureka/
# 在UAT环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为
http://192.168.35.125:8080/eureka/,http://192.168.35.126:8080/eureka/
# 在PRO环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为
http://192.168.35.135:8080/eureka/,http://192.168.35.136:8080/eureka/
(5)创建 “ApolloPortalDB”,用于apollo-portal服务使用库
# MySQL创建数据库并设置字符集
mysql -uapollo -p’root123’
CREATE DATABASE ApolloPortalDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
(6)创建 “ApolloPortalDB”,用于apollo-portal服务使用库
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloPortalDB 库执行sql文件
mysql -uapollo -p’root123’
use ApolloPortalDB;
source /data/opt/scripts//apolloportaldb.sql
(7)调整ApolloPortalDB.ServerConfig表的数据
# portal默认支持的环境是DEV,若需要其它环境,需要修改apollo.portal.envs的值,默认值是DEV,修改为以下值,表示支持DEVFATUATPRO四个环境,注意每个环境值之间用英文逗 隔开
# 注意:只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址,具体会在部署apollo-portal中配置
DEV,FAT,UAT,PRO
7、部署apollo
# 每套环境都安装两个apollo节点,每个apollo节点包含一个apollo-configservice和apollo-adminservice
# 实际部署中,可自行决定apollo节点的个数
(1)根据自己的环境解压包
# 下载官方编译好的下载如下三个包,版本看所需的环境
# 下载地址:https://github.com/ctripcorp/apollo/releases
# 上传到/data/opt/apollo/目录下
apollo-build-scripts-master.zip
apollo-configservice-1.1.1-github.zip
apollo-portal-1.1.1-github.zip
(2)解压到指定目录
mkdir /data/opt/apollo/ -p ; cd /data/opt/apollo/
mkdir apollo-adminservice ; unzip -d /data/opt/apollo/apollo-adminservice apollo-build-scripts-master.zip
mkdir apollo-configservice ; unzip -d /data/opt/apollo/apollo-configservice apollo-configservice-1.1.1-github.zip
mkdir apollo-portal ; unzip -d /data/opt/apollo/apollo-portal apollo-portal-1.1.1-github.zip
(3)创建apollo用户并赋予目录用户权限
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloConfigDB库执行sql文件
useradd apollo
chown -R apollo:root /data/opt/apollo/
(4)配置apollo-configservice
# 配置数据库连接,填写当前环境的ApolloConfigDB数据库连接串信息
# 注意127.0.0.1修改成实际环境数据库IP
# 注意apolloconfigdb数据库(应该是不区分大小写)
# 注意用户名和密码后面不要有空格
vim /data/opt/apollo/apollo-configservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/ApolloPortalDBharacterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = root123
(6)配置apollo-portal
# 本次部署中,只部署一个apollo-portal,用来管理所有环境的apollo节点
默认的启动端口是8090,若要修改,则将scripts/startup.sh中的SERVER_PORT=SERVER_PORT:=8090的8090改成指定的端口即可
# 配置数据库连接,填写当前环境的ApolloConfigDB数据库连接串信息
# 注意127.0.0.1修改成实际环境数据库IP
# 注意apolloconfigdb数据库(应该是不区分大小写)
# 注意用户名和密码后面不要有空格
vim /data/opt/apollo/apollo-portal/config/application-github.properties
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/ApolloPortalDBharacterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = root123
(9)更更更更更更详细的配置可以参考apollo官方
# https://github.com/ctripcorp/apollo/wiki
(10)到此完成部署
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树持续集成和部署(Jenkins)使用helm安装Jenkins8588 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!