1、集群规划node
consul借助agent来运行,相似elk的logstash agent 或 zabbix监控系统的agent ,linux
每一个须要被发现的服务上,经过consul agent client 来收集服务自己的信息,而后向consul agent server汇报, consul server 能够集群部署。web
规划一下:算法
序号 bootstrap |
节点ipapi |
节点名称 浏览器 |
角色服务器 |
1ui |
193.168.30.207spa |
server-207 |
server |
2 |
193.168.30.208 |
server-208 |
server |
3 |
193.168.30.209 |
server-209 |
server & web ui |
这是按正式生产环境来规划的,若是本机开发,有一个方便的dev模式(后面再讲)。 上述表格中,咱们打算组建3个server节点的consul server cluster,另外有1个client,模拟客户端以及充当consul的web admin ui(管理界面)。
2、下载安装
一、本例以1.2.0为例下载地址:
wget https://releases.hashicorp.com/consul/1.2.0/consul_1.2.0_linux_amd64.zip
二、下载文件后解压到:opt/soft/consul下,若是没有创建相关目录
解压后目录为:
三、查询版本
1、启动服务
3.1 启动server端
基本的命令为:
第一个节点(207机器启动方式以下)
nohup ./consul agent -server -bind=193.168.30.207 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-207 >/dev/null 2>&1
第二个节点
nohup ./consul agent -server -bind=193.168.30.208 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-208 >/dev/null 2>&1
第三个节点
nohup ./consul agent -server -bind=193.168.30.209 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=client-209 -ui >/dev/null 2>&1 &
(第三个与前两个服务有点区别就是添加了一个 ui,既能够查看管理服务)
3.2 参数说明
-server 表示是以服务端身份启动
-bind 表示绑定到哪一个ip(有些服务器会绑定多块网卡,能够经过bind参数强制指定绑定的ip)
-client 指定客户端访问的ip(consul有丰富的api接口,这里的客户端指浏览器或调用方),0.0.0.0表示不限客户端ip
-bootstrap-expect=3 表示server集群最低节点数为3,低于这个值将工做不正常(注:相似zookeeper同样,一般集群数为奇数,方便选举,consul采用的是raft算法)
-data-dir 表示指定数据的存放目录(该目录必须存在)
-node 表示节点在web ui中显示的名称
3.3 组建cluster
如今咱们有了3个server node 其中一个node同时也为web node,3个节点都是相互独立的.
3.4 在任何一个节点运行下:
consul members,Consul info 可查看相关信息,既然以下:
3.5 集群加入
(1)例如207作主节点,其余两个上加入集群运行:consul join 193.168.30.207便可
(2)成功会输出:
3.6 从集群中撤出
在撤出节点上执行:consul leave
3.7 web ui
启动成功后,终端窗口不要关闭,能够在浏览器里,访问下,相似 http://193.168.30.209:8500/,正常的话,应该会会出现如下截图:
3.8 查看集群状态
3.9 禁止从新链接
consul force-leave