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
也自动加入到了节点。(这是为什么呢,从测试的结果来看,只要一个节点加入配置即可)