首页 > IT职业 > IT生活 > 安装Consul集群
TIPS
- 本文基于Consul 1.5.3,理论适用于Consul 1.6及更低版本。
- 安装单机版Consul详见:《安装单机版Consul》
| 命令 | 解释 | 示例 |
|---|---|---|
| agent | 运行一个consul agent | consul agent -dev |
| join | 将agent加入到consul集群 | consul join IP |
| members | 列出consul cluster集群中的members | consul members |
| leave | 将节点移除所在集群 | consul leave |
这里只列出几个常用的命令,consul有将近20个命令,本文不作展开,详见:https://www.consul.io/docs/commands/index.html
consul agent 命令详解consul agent 命令的常用选项如下:
Failed to get advertise address: Multiple private IPs found. Please configure one.的异常consul agent -data-dir /tmp/node2 -node=node2 -bind=192.168.11.145 -datacenter=dc1 -ui -client=192.168.11.145
准备一个配置文件,名称任意,例如consul.json,内容如下:
{
"datacenter": "us-east-1",
"data_dir": "/Users/zhouli/develop/software/consul-data/",
"addresses": {
"https": "0.0.0.0"
},
"ports": {
"http": 8500
},
"acl" : {
"enabled": true,
"default_policy": "deny",
"down_policy": "extend-cache",
"tokens" : {
"master" : "b1gs33cr3t"
}
}
}
启动时,让consul读取配置文件:
consul agent -dev -config-file="consul-config/consul.json"
consul agent 有20来个选项,本文只列出了常用选项,其他选项未作展开,详见: https://www.consul.io/docs/agent/options.html

准备三台CentOS 7的虚拟机,主机规划如下:
| 主机名称 | IP | 作用 | 是否允许远程访问 |
|---|---|---|---|
| node0 | 192.168.11.143 | consul server | 是 |
| node1 | 192.168.11.144 | consul client | 否 |
| node2 | 192.168.11.145 | consul client | 是 |
consul agent -data-dir /tmp/node0 -node=node0 -bind=192.168.11.143 -datacenter=dc1 -ui -client=192.168.11.143 -server -bootstrap-expect 1
consul agent -data-dir /tmp/node1 -node=node1 -bind=192.168.11.144 -datacenter=dc1 -ui
consul agent -data-dir /tmp/node2 -node=node2 -bind=192.168.11.145 -datacenter=dc1 -ui -client=192.168.11.145
consul join 192.168.11.143
consul join -rpc-addr=192.168.11.145:8400 192.168.11.143
consul members -rpc-addr=192.168.11.143:8400
结果如下:
Node Address Status Type Build Protocol DC
node0 192.168.11.143:8301 alive server 0.7.0 2 dc1
node1 192.168.11.144:8301 alive client 0.7.0 2 dc1
node2 192.168.11.145:8301 alive client 0.7.0 2 dc1
说明集群已经搭建成功了。
我们分析一下,为什么第5步和第6步需要加-rpc-addr 选项,而第4步不需要加任何选项呢?原因是-client 指定了客户端接口的绑定地址,包括:HTTP、DNS、RPC,而consul join 、consul members 都是通过RPC与Consul交互的。
如上,我们三个节点都加了-ui 参数启动了内建的界面。我们可以通过:http://192.168.11.143:8500/ui/ 或者 http://192.168.11.145:8500/ui/ 进行访问,也可以在node1机器上通过 http://127.0.0.1:8500/ui/ 进行访问,原因是node1没有开启远程访问 ,三种访问方式结果一致。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/151/viewspace-2824544/ ,如需转载,请注明出处,否则将追究法律责任。