Use docker to quickly install apollo configuration center

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

  1. ApolloPortalDB.ServerConfig table
    apollo.portal.envs-the supported environment list
    value content is modified to dev
  2. 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

Guess you like

Origin blog.csdn.net/kk3909/article/details/111937957