携程apollp快速部署DVE集群
1、环境准备:
这里只部署DEV环境
系统环境:
系统 | ip |
---|---|
ubuntu-18.04-live-server-amd64 | 192.168.1.112 |
ubuntu-18.04-live-server-amd64 | 192.168.1.117 |
软件版本:
MYSQL:5.7
apolloconfig/apollo-portal:1.7.0-SNAPSHOT
apolloconfig/apollo-configservice:1.7.0-SNAPSHOT
apolloconfig/apollo-adminservice:1.7.0-SNAPSHOT
1.1、下载MYSQL脚本
下载以下两个脚本。
https://github.com/ctripcorp/apollo/tree/master/scripts/sql/apolloconfigdb.sql
https://github.com/ctripcorp/apollo/tree/master/scripts/sql/apolloportaldb.sql
1.2、安装docker-compose
apt-get install docker-compose
2、部署单机版本
这里在192.168.1.112中部署单机版本
2.1、部署示意图
2.2、准备docker-compose.yml文件
下面的文件 # 后面是备注信息
在112上创建/home/allspark/dockerCompose/docker-compose.yml文件,将以下内容复制到其中。
version: "3"
services:
apollo-configservice:
container_name: apollo-configservice # 容器名
image: apolloconfig/apollo-configservice # 镜像名
ports:
- 8080:8080 # 映射端口
volumes:
- "/home/allspark/apollo/logs/100003171:/opt/logs/100003171" # 映射路径
environment:
- spring_datasource_url=jdbc:mysql://192.168.1.112:3306/ApolloConfigDB?characterEncoding=utf8 # mysql连接字符串
- spring_datasource_username=root # mysql账号
- spring_datasource_password=root # mysql 密码
- eureka.instance.ip-address=192.168.1.112 # 本机IPv4地址
restart: always # 自启
apollo-adminservice:
container_name: apollo-adminservice
image: apolloconfig/apollo-adminservice
ports:
- 8090:8090
volumes:
- "/home/allspark/apollo/logs:/opt/logs"
environment:
- spring_datasource_url=jdbc:mysql://192.168.1.112:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
- eureka.instance.ip-address=192.168.1.112
depends_on:
- apollo-configservice # 在这之后执行
restart: always
apollo-portal:
container_name: apollo-portal
image: apolloconfig/apollo-portal
ports:
- 8070:8070
volumes:
- "/home/allspark/apollo/logs:/opt/logs"
- "/home/allspark/apollo/apollo-portal/config/apollo-env.properties:/apollo-portal/config/apollo-env.properties"
environment:
- spring_datasource_url=jdbc:mysql://192.168.1.112:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
depends_on:
- apollo-adminservice
restart: always
2.3、准备apollo-portal需要的配置文件
我们在192.168.1.112上创建文件
/home/allspark/apollo/apollo-portal/config/apollo-env.properties
写入内容(以下内容为官方包中默认配置,单机版本无需修改)
local.meta=http://localhost:8080
dev.meta=http://fill-in-dev-meta-server:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
2.4、开始部署
cd /home/allspark/dockerCompose
docker-compose -f docker-compose.yml up --build -d
等待执行完毕后,即可访问
192.168.1.112:8070
192.168.1.112:8080
192.168.1.112:8090
3、双机集群部署
3.1、部署示意图
3.2、准备docker-compose.yml文件
首先我们在已经有上面单机部署。
我们这里共用一个数据库,公用一个apollo-portal。
所以只需要在另外一台机器上部署一个集群就可以了,使112与117形成集群。
192.168.1.117上创建/home/allspark/dockerCompose/docker-compose.yml文件,将以下内容复制到其中。
version: "3"
services:
apollo-configservice:
container_name: apollo-configservice # 容器名
image: apolloconfig/apollo-configservice # 镜像名
ports:
- 8080:8080 # 映射端口
volumes:
- "/home/allspark/apollo/logs/100003171:/opt/logs/100003171" # 映射路径
environment:
- spring_datasource_url=jdbc:mysql://192.168.1.112:3306/ApolloConfigDB?characterEncoding=utf8 # mysql连接字符串(这里使用的112的数据库)
- spring_datasource_username=root # mysql账号
- spring_datasource_password=root # mysql 密码
- eureka.instance.ip-address=192.168.1.117 # 本机IPv4地址
restart: always # 自启
apollo-adminservice:
container_name: apollo-adminservice
image: apolloconfig/apollo-adminservice
ports:
- 8090:8090
volumes:
- "/home/allspark/apollo/logs:/opt/logs"
environment:
- spring_datasource_url=jdbc:mysql://192.168.1.112:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
- eureka.instance.ip-address=192.168.1.117
depends_on:
- apollo-configservice # 在这之后执行
restart: always
开始部署
cd /home/allspark/dockerCompose
docker-compose -f docker-compose.yml up --build -d
修改配置
使用ssh连接192.168.1.112
修改/home/allspark/apollo/apollo-portal/config/apollo-env.properties
为以下内容。
local.meta=http://192.168.1.112:8080
dev.meta=http://192.168.1.112:8080,http://192.168.1.117:8080
修改mysql数据库中的配置
打开数据库连接工具
use apolloconfigdb;
UPDATE serverconfig SET `Value`="http://192.168.1.112:8080/eureka/,http://192.168.1.117:8080/eureka/" WHERE Id=1;
重启112上的apollo
使用SSH连接到112
cd /home/allspark/dockerCompose
docker-compose restart