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

携程apollp快速部署DVE集群的更多相关文章

  1. MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

    MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...

  2. MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)

    MariaDB Galera Cluster 部署(如何快速部署MariaDB集群) [日期:--] 来源:Linux社区 作者:Linux [字体:大 中 小] MariaDB作为Mysql的一个分 ...

  3. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

  4. Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群

    Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...

  5. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  6. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  7. 通过kubeadm快速部署K8S集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...

  8. 教你在Kubernetes中快速部署ES集群

    摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...

  9. 使用Rancher的RKE快速部署Kubernetes集群

    简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linu ...

  10. Linux环境快速部署Zookeeper集群

    一.部署前准备: 1.下载ZooKeeper的安装包: http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper-3.4.9. 2.将下载的 ...

随机推荐

  1. JS 原型链的终点

    从对 js 原型和原型链查找的特性, 我们知道了两个最为重要的结论: 函数对象天生存在 prototype 属性, 它是一个对象, 而它的 constructor 属性指回 函数自身 构造函数的 pr ...

  2. Lynx-字节跳动跨平台框架多端兼容Android, iOS, Web 原生渲染

    介绍 字节跳动近期开源的跨平台框架Lynx被视为一项重要的技术创新.相较于市场上已有的解决方案如React Native (RN) 和Flutter,Lynx具有独特的特性. 首先,Lynx采用轻量级 ...

  3. 深挖diff算法:揭开代码版本控制神器的神秘面纱

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  4. null 空 || 长度为0

    基础差的报应 集合为空null 未分配内存,只是说有这么一个变量 就像是赐你封号大将军,但是手上却半个兵符都没有.想打仗的话还是要先让"系统"这个君主给你兵符才OK 集合长度为0 ...

  5. 本地编译WPF框架源码

    最近,在 排查WPF框架触摸失效和书写 Stroke 绘制的问题,常常需要查看WPF 的源码,由于项目组用到的框架大部分都是 .netFramwork 的,只能通过VS的F12按键反编译或者Dnspy ...

  6. 第2讲、Tensor高级操作与自动求导详解

    1. 前言 在深度学习模型中,Tensor是最基本的运算单元.本文将深入探讨PyTorch中两个核心概念: Tensor的广播机制(Broadcasting) 自动求导(Autograd)机制 这些知 ...

  7. Django Web应用开发实战第十六章

    一.即时通信 - AJAX技术:通过AJAX实现网页与服务器的无刷新交互,在网页上每隔一段时间就通过AJAX从服务器中获取数据.然后将数据更新并显示在网页上,这种方法简单明了,实时性不高. - Com ...

  8. MQ的学习记录~

    MQ是一个消息中间件,是为了解决发送者和接收者处理速度不匹配的问题而产生的,有队列和主题两种. 队列:一对一. 主题:一对多.例如有100人订阅了我的公众号,当我在公众号上发布新的文章时100人都能收 ...

  9. 提升Avalonia UI质感,跨平台图标库选型实践

    前言 之前我写了 StarBlog 发布工具更新了版本,优化了一下界面,其中就把 emoji 表情换成了 FontAwesome 图标 emoji 如果只在一个系统上用(如 Windows) 那可能没 ...

  10. Etcd异地容灾方案

    一.方案选型 ETCD官网提供了一种实时镜像同步数据的工具mirror-maker,如果出现主机房服务挂掉可以通过切换域名的形式切换到灾备机房,这个过程数据是可以保持一致的. 注意:make-mirr ...