Consul集群主节点宕机后无法提供Http服务

Gannalyo 发布于 2019/08/06 14:52
阅读 961
收藏 0

各位老板好

请教个Consul集群的问题。

我使用docker创建consul集群,三个节点ip分别为.4/.5/.6,.4先为主,.5和.6为从(如图①)。

集群可以启动,.4为leader(如图②)。

问题:当我docker stop掉.4节点容器后,.6节点成为leader(如图③),但此时却无法请求http服务,无法访问ui???

请大佬帮忙看下,谢谢!

 

分享下我的命令,感兴趣的朋友可以尝试下:

# docker run -d --name=consul1 -p 8500:8500 -e CONSUL_BIND_INTERFACE=eth0 -v /opt/consul/data:/consul/data -v /opt/consul/conf:/consul/config consul agent -server -bootstrap -ui -node=1 -client=0.0.0.0

# docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server -node=2 -join=172.17.0.4 -ui

# docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server -node=3 -join=172.17.0.4 -ui

 

加载中
0
gammey
gammey

你就让主节点暴露端口,其他节点怎么提供服务?

0
Gannalyo
Gannalyo

我做过如下尝试的:

docker run -d --name=consul2 -p 2500:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server -node=2 -join=172.17.0.4 -ui
docker run -d --name=consul3 -p 3500:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server -node=3 -join=172.17.0.4 -ui
docker run -d --name=consul4 -p 4500:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent -server -node=4 -join=172.17.0.4 -ui

改后,kill leader,node2成为leader,然后将ui请求端口改为2500,依然是没能生效的。

0
Gannalyo
Gannalyo

问题原因

    未设置参数-client,其默认值为127.0.0.1,表示不对外提供服务。

解决方案

    添加参数-client=0.0.0.0,表示对外提供HTTP接口服务。

0
Gannalyo
Gannalyo

引用来自“gammey”的评论

你就让主节点暴露端口,其他节点怎么提供服务?

哥们儿  你说的是正确的
我以前也考虑过  只是当时没调通  后仔细阅读了官方文档的配置  发现了端倪

--client如果不配置默认是不对外提供http服务   需设置--client=0.0.0.0


谢谢

返回顶部
顶部