consul异地多数据中心以及集群部署方案
目的
实现consul 异地多数据中心环境部署,使得一个数据中心的服务可以从另一个数据中心的consul获取已注册的服务地址
环境准备
两台 linux服务器,外网可以互相连通,都需要开放服务器的8500,8300,8301(可选择开放或者不开放),8302端口
为了简化流程,我们每台服务器上只部署一个consul server ,不部署集群
端口 | 用途 |
---|---|
8500 | 图形界面 |
8300 | 不同server之间请求获取数据 |
8301 | 局域网集群内部通信 |
8302 | 广域网集群内部通信 |
部署过程
安装consul
下载安装包
在 opt 目录下
mkdir consul
如果下载1.5.0 的版本
curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip
curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_SHA256SUMS
curl --silent --remote-name https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_SHA256SUMS.sig
如果下载速度过慢,可以选择在官网下载后,上传到服务器
https://www.consul.io/downloads.html
下载 web-ui安装包
下载图形界面安装包,并解压
wget https://releases.hashicorp.com/consul/0.8.1/consul_0.8.1_web_ui.zip
mkdir -p /opt/consul/web
unzip consul_0.8.1_web_ui.zip -d /opt/consul/web/
安装
只需要解压下载下来的文件即可
unzip consul_1.5.0_linux_amd64.zip
我们会得到一个 consul 文件,将这个文件移动到 /usr/local/bin 目录下
mv consul /usr/local/bin
运行配置
- 首先新建conf,data,run 文件夹,分别存放配置文件,数据,运行信息等
mkdir -p /opt/consul/conf
mkdir -p /opt/consul/data
mkdir -p /opt/consul/run
- 在conf文件夹下新建配置文件 consul会自动加载指定的conf文件夹下所有.json结尾的配置文件
cd conf
vim server.json
配置文件内容为:
{
"datacenter": "dc2",
"data_dir": "/opt/consul/data",
"log_level": "INFO",
"node_name": "consul-server02",
"server": true,
"bootstrap_expect": 1,
"bind_addr"