Docker Swarm with Consul - 经理不选举主要

Docker Swarm with Consul - Manager not electing primary

我正在尝试在 3 台专用电脑上设置 HA docker 集群。我已成功按照 docs.docker.com/engine/installation/linux/ubuntulinux 上的说明进行操作,现在我正在尝试按照 https://docs.docker.com/swarm/install-manual 上的说明进行操作。因为我没有使用任何虚拟化,所以我从 "Set up an consul discovery backend" 开始。 PC的(运行ning ubuntutrusty 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

但是当尝试下一步时,集群管理器并没有像它说的那样显示为 "Primary",并且没有列出主要节点:

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运行你好世界 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 的任何其他输入,所以我在这里...有什么建议吗?不幸的是,我不确定如何排除故障,因为我什至不知道在哪里寻找 logging/debugging 信息,即如果经理成功连接到领事等等...

在显式将端口号添加到 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

我还向副本管理器(在 ubuntu002 上)的命令中添加了“-p 4000:4000”。不确定这是否有必要(甚至是个好主意)。

朋友们,第一步你应该编辑docker启动守护进程配置写监听端口任何其他配置,我的环境是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" 再...