1.下载文件
2.解压文件
unzip consul_1.6.1_linux_amd64.zip
3.复制到path路径
cp consul /usr/local/bin/
4.执行测试
consul agent -dev
a.修改默认端口
修改成8080端口
consul agent -dev -http-port 8080
b.配置公网可访问
使用-client 0.0.0.0
consul agent -dev -http-port 8080 -client 0.0.0.0
下面以server模式运行consul
consul agent -server -ui -bootstrap-expect=1 -data-dir=/data/consul -node=consul-svr -advertise=192.168.10.66 -bind=0.0.0.0 -client=0.0.0.0
-server:服务器模式
-ui:能webui展示
-bootstrap-expect:server为1时即选择server集群leader
-data-dir:consul状态存储文件地址
-node:指定结点名
advertise:本地ip地址
-client:指定可访问这个服务结点的ip
UI 访问
192.168.10.66:8500
查看集群状态(默认端口 8500)
consul members
修改默认端口为 8080
consul agent -server -ui -bootstrap-expect=1 -http-port 8080 -data-dir=/data/consul -node=consul-svr -advertise=192.168.10.66 -bind=0.0.0.0 -client=0.0.0.0
访问命令时出现提示:
[root@rancher-nginx consul]# consul members
Error retrieving members: Get http://127.0.0.1:8500/v1/agent/members?segment=_all: dial tcp 127.0.0.1:8500: connect: connection refused
改造如下:
[root@rancher-nginx consul]# consul members --http-addr 192.168.10.66:8080
Node Address Status Type Build Protocol DC Segment
consul-svr 192.168.10.66:8301 alive server 1.6.1 2 dc1
#consul集群部署
单节点部署后,各节点之间无感知
三个Consul Server现在还对彼此没有任何感知。它们都为单节点的集群,每个集群都仅包含一个成员。运行consul members来验证下。
由于启动Agent时绑定了IP地址,所以下面需要显示指定IP地址。默认连接地址是127.0.0.1:8500
检测:
consul members
Node Address Status Type Build Protocol DC Segment
consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh
4.加入集群
1].Consul发现机制
当一个Consul代理启动后,它并不知道其它节点的存在,它是一个孤立的单节点集群。
如果想感知到其它节点的存在,它必须加入到一个现存的集群。
要加入到一个现存的集群,它只用加入集群中任意一个现存的成员。
当加入一个现存的成员后,会通过成员间的通讯很快发现集群中的其它成员。
一个Consul代理可以加入任意一个代理,而不仅仅是服务节点。
为了让三个Server间能互相感知,这里就要让其它二个Server加入同一个集群中
consul join 10.5.90.4
Successfully joined cluster by contacting 1 nodes.
#如有报错,需带上目标IP及端口,如
# consul join --http-addr 192.168.2.211:8500 192.168.2.210
b) server 03 加入 01
consul join 10.5.90.4
Successfully joined cluster by contacting 1 nodes.
c) 任意1台访问
[root@Q-sh-pro-consul-zookeeper-3 /data/consul]# consul members
Node Address Status Type Build Protocol DC Segment
consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh
consul-svr-02 10.5.90.16:8301 alive server 1.6.1 2 sh
consul-svr-03 10.5.90.12:8301 alive server 1.6.1 2 sh
[root@Q-sh-pro-consul-zookeeper-1 /data/consul/consul_data]# consul members
Node Address Status Type Build Protocol DC Segment
consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh
consul-svr-02 10.5.90.16:8301 alive server 1.6.1 2 sh
consul-svr-03 10.5.90.12:8301 alive server 1.6.1 2 sh
d)通过HTTP API方式查询,在三个节点上任意一个节点执行:
# 查询集群leader
curl 10.5.90.12:8500/v1/status/leader
"10.5.90.4:8300"
# 查询集群成员
curl 10.5.90.4:8500/v1/status/peers
["10.5.90.4:8300","10.5.90.16:8300","10.5.90.12:8300"]
e)通过DNS方式来查询节点信息
查询结构为NAME.node.consul和NAME.node.DATACENTER.consul。以查询consul-svr-01为例:
dig @10.5.90.4 -p 8600 consul-svr-01.node.consul
dig @10.5.90.4 -p 8600 consul-svr-02.node.consul
本文暂时没有评论,来添加一个吧(●'◡'●)