Article Directory
Environmental preparation
Node name | ip address |
---|---|
node1 | 192.168.130.19 |
node2 | 192.168.130.21 |
Install docker
slightly
Stand-alone
Install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Get the code
yum install git -y
git clone https://github.com/ctripcorp/apollo.git
cd apollo
git checkout 1.7.1
start up
cd scripts/docker-quick-start/
docker-compose up
High availability
Install mysql
Reference xx
Create database
Create ApolloConfigDB and ApolloPortalDB databases. If there are multiple environments that need to create multiple sets of ApolloConfigDB, only one development environment is created here. No matter how many environments there are, ApolloPortalDB only needs one.
config sql script: https://raw.githubusercontent.com/ctripcorp/apollo/1.7.1/scripts/sql/apolloconfigdb.sql
portal sql script: https://raw.githubusercontent.com/ctripcorp/apollo/1.7.1/scripts/sql/apolloportaldb.sql
Adjust server configuration
- ApolloPortalDB.ServerConfig table
apollo.portal.envs-the supported environment list
value content is modified to dev - ApolloConfigDB.ServerConfig table
eureka.service.url-Eureka service Url
value content modified to http://apollo-node1:18080/eureka/, http://apollo-node2:18080/eureka/
Configure /etc/hosts
192.168.130.19 kont002ecs rq-node2 apollo-node1
192.168.130.21 kont003ecs rq-node3 apollo-node2
Deploy Apollo Config Service
node1 node2
mkdir -p /root/apollo/configservice/logs
node1
docker rm -f apollo-configservice-node1
docker run -d --name apollo-configservice-node1 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 18080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e eureka.instance.home-page-url=http://apollo-node1:18080 \
-v /root/apollo/configservice/logs:/opt/logs \
apolloconfig/apollo-configservice:1.7.1
node2
docker rm -f apollo-configservice-node2
docker run -d --name apollo-configservice-node2 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 18080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e eureka.instance.home-page-url=http://apollo-node2:18080 \
-v /root/apollo/configservice/logs:/opt/logs \
apolloconfig/apollo-configservice:1.7.1
Deploy Apollo Admin Service
node1 node2
mkdir -p /root/apollo/adminservice/logs
node1
docker rm -f apollo-adminservice-node1
docker run -d --name apollo-adminservice-node1 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 18090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e eureka.instance.home-page-url=http://apollo-node1:18090 \
-v /root/apollo/configservice/logs:/opt/logs \
apolloconfig/apollo-adminservice:1.7.1
node2
docker rm -f apollo-adminservice-node2
docker run -d --name apollo-adminservice-node2 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 18090:8090 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e eureka.instance.home-page-url=http://apollo-node2:18090 \
-v /root/apollo/configservice/logs:/opt/logs \
apolloconfig/apollo-adminservice:1.7.1
Deploy Apollo Portal
node1 、node2
mkdir -p /root/apollo/portal/logs
node1
docker rm -f apollo-portal-node1
docker run -d --name apollo-portal-node1 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://apollo-node1:18080,http://apollo-node2:18080 \
-v /root/apollo/portal/logs:/opt/logs \
apolloconfig/apollo-portal:1.7.1
node2
docker rm -f apollo-portal-node2
docker run -d --name apollo-portal-node2 \
--add-host apollo-node1:192.168.130.20 \
--add-host apollo-node2:192.168.130.19 \
-p 8070:8070 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.130.22:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=kont \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://apollo-node1:18080,http://apollo-node2:18080 \
-v /root/apollo/portal/logs:/opt/logs \
apolloconfig/apollo-portal:1.7.1
You can add another lb to the front as a load