Docker Swarm与Consul - 经理不选择主要

时间:2016-02-12 10:51:30

标签: docker docker-swarm consul

我正在尝试在3台专用PC上设置HA docker群集。我已成功按照docs.docker.com/engine/installation/linux/ubuntulinux上的说明操作,现在我正按照https://docs.docker.com/swarm/install-manual上的说明进行操作。由于我没有使用任何虚拟化,我从“设置领事发现后端”开始。 PC(运行ubuntu可信赖的14.04服务器版)都在局域网192.168.2.0/24中。 ubuntu001有.104,ubuntu002有.106,ubuntu003有.105

我按照说明做了以下事项:

arnolde@ubuntu001:~$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

arnolde@ubuntu001:~$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.2.104:4000  consul://192.168.2.104

arnolde@ubuntu002:~# docker run -d swarm manage -H :4000 --replication --advertise 192.168.2.106:4000  consul://192.168.2.104:8500

arnolde@ubuntu003:~$ docker run -d swarm join --advertise=192.168.2.105:2375 consul://192.168.2.104:8500

但是当尝试下一步时,群体管理器不像它所说的那样显示为“主要”,并且没有列出主要内容:

arnolde@ubuntu001:~$ docker -H :4000 info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: swarm/1.1.0
Role: replica
Primary: 
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 0
Plugins: 
 Volume: 
 Network: 
Kernel Version: 3.19.0-25-generic
Operating System: linux
Architecture: amd64
CPUs: 0
Total Memory: 0 B

和: arnolde @ ubuntu001:〜$ docker -H:4000运行hello-world docker:来自守护程序的错误响应:没有选出的主集群管理器。

我搜索并发现https://github.com/docker/swarm/issues/1491建议使用dockerswarm / swarm:master,我做了,但它没有帮助:

arnolde@ubuntu001:~$ docker run -d -p 4000:4000 dockerswarm/swarm:master manage -H :4000 --replication --advertise 192.168.2.104:4000  consul://192.168.2.104

我没有找到关于swarm + consul + primary的任何其他输入,所以我在这里......有什么建议吗?不幸的是我不知道如何排除故障,因为我甚至不知道在哪里寻找记录/调试信息,即如果经理成功连接到领事等......

2 个答案:

答案 0 :(得分:1)

在明确地将端口号添加到consul://参数后,我能够自己解决,显然docker文档不完整:

arnolde@ubuntu001:~$ docker run -d -p 4000:4000 dockerswarm/swarm:master manage -H :4000 --replication --advertise 192.168.2.104:4000 consul://192.168.2.104:8500
arnolde@ubuntu001:~$ docker -H :4000 info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: swarm/1.1.0
Role: replica
Primary: 192.168.2.106:4000

我还添加了#34; -p 4000:4000"到副本管理器上的命令(在ubuntu002上)。不确定是否有必要(甚至是个好主意)。

答案 1 :(得分:0)

我的朋友们,第一步你应该编辑docker start守护进程配置写入侦听端口任何其他configure,我的环境是centos7,所以我的守护进程配置在/ usr / lib / docker / ....编辑“ExecStart = / usr / bin / docker daemon -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store = consul://192.168 .1.102:8500 --cluster-advertise = 192.168.1.103:0“每个节点。第二步:“docker run -d -p 8500:8500 --name = consul progrium / consul -server -bootstrap”不再......