【问题标题】:Docker Swarm with Consul - Manager not electing primary带有 Consul 的 Docker Swarm - 经理不选择主要
【发布时间】:2017-07-13 00:08:01
【问题描述】:

我正在尝试在 3 台专用电脑上设置 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 运行 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 的任何其他输入,所以我在这里......有什么建议吗?不幸的是,我不知道如何排除故障,因为我什至不知道在哪里寻找日志记录/调试信息,即如果经理成功连接到领事等......

【问题讨论】:

    标签: docker docker-swarm consul


    【解决方案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”。不确定这是否有必要(甚至是一个好主意)。

    【讨论】:

      【解决方案2】:

      朋友们,第一步你应该编辑 docker start daemon configure 来编写监听端口任何其他配置,我的环境是 centos7,所以我的守护进程配置在 /usr/lib/docker/.... 编辑“ExecStart =/usr/bin/docker 守护进程 -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”了……

      【讨论】:

        猜你喜欢
        • 2017-09-26
        • 2016-12-24
        • 1970-01-01
        • 2016-05-10
        • 1970-01-01
        • 2019-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多