1

我正在尝试在 3 台专用 pc 上设置一个 HA docker 集群。我已成功遵循 docs.docker.com/engine/installation/linux/ubuntulinux 上的说明,现在我正在尝试遵循https://docs.docker.com/swarm/install-manual上的说明。由于我没有使用任何虚拟化,我从“设置领事发现后端”开始。PC(运行 ubuntu trusty 14.04 服务器版)都在 LAN 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

但是当尝试下一步时,swarm manager 并没有像它说的那样显示为“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 run 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 的任何其他输入,所以我在这里......有什么建议吗?不幸的是,我不确定如何进行故障排除,因为我什至不知道在哪里寻找日志记录/调试信息,即经理是否成功连接到领事等......

4

2 回答 2

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

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

于 2016-02-12T11:34:05.440 回答
0

朋友们,第一步你应该编辑 docker start daemon 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”了...

于 2016-05-10T07:15:21.007 回答