Consul 运行和查看Client - Part.2
在 Consul 安装和配置Server.html - Part.1 中,配置了3节点的server集群。接下来,这篇文章将部署一台Client,并查看它的运行状态。
启动Consul client
使用局域网内的另一台服务器或者电脑作为Consul的Client agent,我用的是工作用Mac电脑,使用如下命令运行Consul Client:
$ ./consul agent \ -data-dir=/Users/zhangzy/linux/consul/data \ -config-dir=/Users/zhangzy/linux/consul/config \ -node=mac_work \ -bind=192.168.3.13 \ -enable-local-script-checks=true \ -client='127.0.0.1 192.168.3.13'
我没有将consul程序拷贝至$PATH目录下,所以上面的命令需要在包含有consul的目录下运行,注意到运行consul时是./consul,而不是直接consul。
这里的大多数参数都和启动server时的相同,最重要的是少了-server选项,说明它是以consul client模式启动。
将节点加入集群
启动以后,因为还没有加入任何集群,同时自身又是以Client模式启动,所以会看到这样一个错误:
2018/12/26 08:47:23 [WARN] manager: No servers available 2018/12/26 08:47:23 [ERR] agent: failed to sync remote state: No known Consul servers
如果执行consul members命令,会看到只有它自己:
$ ./consul members Node Address Status Type Build Protocol DC Segment mac_work 192.168.3.13:8301 alive client 1.4.0 2 dc1 <default>
使用上一篇中用过的命令 consule join 加入集群:
$ ./consul join 192.168.1.56 Successfully joined cluster by contacting 1 nodes.
查看新加入的节点
client 加入集群以后,可以在Web UI的Nodes标签页中查看,可以看到多了一个mac_work节点:
在集群内的任意一台机器上执行consul members,都可以看到集群成员:
$ ./consul members Node Address Status Type Build Protocol DC Segment consul1 192.168.1.56:8301 alive server 1.4.0 2 dc1 <all> consul2 192.168.1.57:8301 alive server 1.4.0 2 dc1 <all> consul3 192.168.1.58:8301 alive server 1.4.0 2 dc1 <all> mac_work 192.168.3.13:8301 alive client 1.4.0 2 dc1 <default>
mac_work的Type是client,其余服务器的Type都是server。
退出集群
退出集群有两种模式:一种是和平退出(Graceful leave),一种是异常退出(Failed)。
和平退出
对于前台进程,可以通过按Ctrl+C退出;对于后台进程,可以通过kill -2 [PID]退出(kill -INT [PID]);还可以执行consul leave命令退出。
此时,集群认为该节点正常退出,状态是left:
$ ./consul members Node Address Status Type Build Protocol DC Segment consul1 192.168.1.56:8301 alive server 1.4.0 2 dc1 <all> consul2 192.168.1.57:8301 alive server 1.4.0 2 dc1 <all> consul3 192.168.1.58:8301 alive server 1.4.0 2 dc1 <all> mac_work 192.168.3.13:8301 left client 1.4.0 2 dc1 <default>
和平退出以后,在Web UI上就看不到该节点了,但控制台命令上会显示出来。
异常退出
除了这三种方式的退出,会认为是异常退出。例如执行:kill -9 [PID]。
此时在集群的server上执行consul members,会显示为failed:
# consul members Node Address Status Type Build Protocol DC Segment consul1 192.168.1.56:8301 alive server 1.4.0 2 dc1 <all> consul2 192.168.1.57:8301 alive server 1.4.0 2 dc1 <all> consul3 192.168.1.58:8301 alive server 1.4.0 2 dc1 <all> mac_work 192.168.3.13:8301 failed client 1.4.0 2 dc1 <default>
如果此时查看Web UI,会看到该节点还在,但状态是Critical:
总结
至此,我们学习了如何启动consul client,将其加入集群,查看其状态。接下来,就可以使用Consul的服务注册、服务发现、健康检查、KV存储等一系列功能了。
感谢阅读,希望这篇文章能给你带来帮助!