docker consul 集群部署验证
主要记录 docker consul 集群部署完成之后验证的文档。
验证
1.查看成员(consul_server_1服务器)
1  | docker exec consul_server_1 consul members  | 

2.查看集群的选举情况
1  | docker exec consul_server_1 consul operator raft list-peers  | 

可以看到,目前的leader 是节点 consul_server_1
3.通过网页打开http://192.168.26.73:8500/ui看是否能看到consul看板
验证集群选举机制
1.重启leader(consul_server_1)
1  | docker restart consul_server_1  | 
2.查看consul_server_2 和 consul_server_3 日志
consul_server_2:

consul_server_3:

3.查看集群的选举情况
1  | docker exec consul_server_1 consul operator raft list-peers  | 

通过步骤2和3,可以看到节点consul_server_2 被选举为新的 leader
注:
有一定几率,选举的leader 是重启后的节点(测试出现过,猜测是从日志上看重启的时候,其余正常的节点再尝试连接,返回了 connect:connection refused  报错,而且尝试连接不止一次,在尝试连接几次之后,发现连接不上,才开始选举,在选举的时候,重启完成了,可以参与选举,这里就不做深度研究,知道有几率出现这个情况即可)
验证节点优雅退出
1.consul_server_1 优雅退出
1  | docker exec consul_server_1 consul leave  | 

优雅退出之后,查看服务状态是Exited 状态

2.查看节点状态
在其余节点服务器上执行,用的是consul_server_3 节点(根据实际情况查看)
1  | docker exec consul_server_3 consul members  | 

3.查看leader
当前leader 节点是consul_server_2 (根据实际情况查看)
1  | docker exec consul_server_2 consul operator raft list-peers  | 

查看后台日志,没有报错,访问ui正常,说明配置文件的bootstrap_expect=3,只是在创建集群的时候期待的节点数量,如果达不到就不会初次创建集群,但节点数据量达到3后,集群初次创建成功,后面如果server通过优雅退出,不影响集群的健康情况,集群仍然会正常运行,而优雅退出的集群的状态会标志为“left”。
4.重启优雅退出的节点(consul_server_1)
1  | docker restart consul_server_1  | 
查看集群状态,发现consul_server_1 节点状态 还是left,尽管启动命令中加入了join 参数 (这个问题可以研究一下)

手动加入节点

再次查看集群状态

发现consul_server_1 节点的状态为 alive
节点自动加入集群
1.分别编辑sverer1、sverer2、sverer3 的配置文件,加入start_join 和 retry_join 字段
1  | vim config/config.json  | 

server2 和 server3 同样配置。
2.重新加载配置文件,验证配置是否正确
1  | docker exec consul_server_1 consul reload  | 

我测试的consul_server_2 是 leader,加入了配置,但是没有重启leader。我重启的是 consul_server_1,测试优雅退出 consul_server_1,然后再重启,发现自动加入到了节点;也测试 consul_server_3 不加配置,然后优雅退出 consul_server_3 再重启,发现 consul_server_3 也自动加入到了节点。(这是为什么呢,从测试的结果来看,只要一个节点加入配置即可)