背景环境

consul3台主机集群配置
192.168.0.101
192.168.0.102
192.168.0.103
consul集群最少需要3台,

集群配置

1.下载consul包,进入consul目录下

创建cs-data数据目录
在这里插入图片描述

2.配置启动文件run.sh

内容可参考
1节点配置文件:

chmod 777 /home/soft/consul/consul
nohup /home/soft/consul/consul agent -server -ui -bootstrap-expect=2 -data-dir=/home/soft/consul/cs-data -node=consul1 -client=0.0.0.0 -bind=192.168.0.101 > /home/soft/consul/consul.log 2>&1 &
ps -ef |grep consul

2节点配置文件:

chmod 777 /home/soft/consul/consul
nohup /home/soft/consul/consul agent -server -ui -bootstrap-expect=2 -data-dir=/home/soft/consul/cs-data -node=consul2 -client=0.0.0.0 -bind=192.168.0.102 > /home/soft/consul/consul.log 2>&1 &
ps -ef |grep consul

3节点配置文件:

chmod 777 /home/soft/consul/consul
nohup /home/soft/consul/consul agent -server -ui -bootstrap-expect=2 -data-dir=/home/soft/consul/cs-data -node=consul3 -client=0.0.0.0 -bind=192.168.0.103 > /home/soft/consul/consul.log 2>&1 &
ps -ef |grep consul

几个地方注意下:
-bootstrap-expect=2 这个2是最小启动数,小于2就集群失效
-node=consul1 这个为节点名,2,3节点作出相应修改

3.启动

consul目录下文件赋权启动,consul和run.sh赋权即可,此处全部做了赋权

chmod -R 777 ./*

启动

./run.sh
[yyq@soft consul]$ ./run.sh
yyq     24591 24589  0 14:42 pts/1    00:00:00 /home/soft/consul/consul agent -server -ui -bootstrap-expect=2 -data-dir=/home/soft/consul/cs-data -node=consul1 -client=0.0.0.0 -bind=192.168.0.101
yyq     24593 24589  0 14:42 pts/1    00:00:00 grep consul
[yyq@soft consul]$ 
4.配置集群

开放节点1,2,3的8300、8301、8302端口

/sbin/iptables -I INPUT -p tcp --dport 8300 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8301 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8302 -j ACCEPT

2,3节点分别执行以下命令加入到集群

./consul join 192.168.0.101

此处如果不开放端口会报以下两个错误

1.Failed to join 192.168.0.101
[yyq@soft consul]$ ./consul join 192.168.0.101
Error joining address '192.168.0.101': Unexpected response code: 500 (1 error(s) occurred:

* Failed to join 192.168.0.101: dial tcp 192.168.0.101:8301: i/o timeout)
Failed to join any nodes.

这个其实是1节点的8301端口没有开放导致,用root用户开放下端口即可

2. agent: Coordinate update error: rpc error getting client: failed to get conn: dial tcp

这个错误是没有开放8300端口

2020/11/06 01:09:50 [ERR] agent: Coordinate update error: rpc error getting client: failed to get conn: dial tcp 192.168.0.102:0->192.168.0.101:8300: connect: no route to host
3.Push/Pull with consul1.dc1 failed: dial tcp
2020/11/06 01:16:10 [ERR] memberlist: Push/Pull with consul1.dc1 failed: dial tcp 192.168.0.101:8302: connect: no route to host
5.测试

以下命令测试启动情况

./consul members
[yyq@soft consul]$ ./consul members
Node     Address             Status  Type    Build  Protocol  DC   Segment
consul1  192.168.0.101:8301  alive   server  1.4.2  2         dc1  <all>
consul2  192.168.0.102:8301  alive   server  1.4.2  2         dc1  <all>
consul3  192.168.0.103:8301  alive   server  1.4.2  2         dc1  <all>
[yyq@soft consul]$ 

查杀1节点后,情况如下

[yyq@soft consul]$ ./consul members
Node     Address             Status  Type    Build  Protocol  DC   Segment
consul1  192.168.0.101:8301  left    server  1.4.2  2         dc1  <all>
consul2  192.168.0.102:8301  alive   server  1.4.2  2         dc1  <all>
consul3  192.168.0.103:8301  alive   server  1.4.2  2         dc1  <all>
5.输入地址访问:

http://192.168.0.101:8500
访问 即可看到consul已经有三个端口了
在这里插入图片描述

常见问题

参考:
搭建consul 集群

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐