Tag: 领事

2个Docker环境在同一个VPC中

我试图在同一个vpc中包含我的dev&qa环境。 我创build了单独的覆盖networking,命名为: QA 开发 我的开发环境启动顺利。 我也为qa env使用相同的容器名称。 当我尝试注册我的容器群集它抱怨这一点: docker: Error response from daemon: Conflict: The name mongo2 is already assigned. You have to delete (or rename) that container to be able to assign mongo2 to a container again.. 在这种情况下我该怎么做。 注意:群集pipe理器运行的两个环境的docker0具有相同的子网掩码。

docker引擎群模式需要服务发现

我很困惑docker群。 据我所知,运行swarm的旧方法是在docker引擎为swarm模式提供原生支持之前运行容器中的经理和工作人员。 旧的集装箱群的文档解释了如何使用consul,etcd或zookeeperbuild立服务发现。 服务发现是必要的,因为服务在随机端口运行以避免冲突,对吧? docker引擎群模式的文档没有解释如何设置服务发现。 现在我很困惑,如果机制被纳入群模式,或者是文件不完整。 我在哪里可以find关于群集模式的最新解释,以及它如何与服务发现等概念相关联?

访问在OSX上的docker上运行的consul UI

我有一个问题,类似于如何访问consul UI的外部,但我不能让networking选项的组合工作正确。 我在OSX上使用Docker for Mac,而不是旧的docker-machine,官方的consul docker镜像,而不是progrium / docker镜像。 我可以很好地启动一个3节点的服务器群集 docker run -d –name node1 -h node1 consul agent -server -bootstrap-expect 3 JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)" docker run -d –name node2 -h node2 consul agent -server -join $JOIN_IP docker run -d –name node3 -h node3 consul agent -server -join $JOIN_IP 到目前为止,他们互相连接,工作良好。 现在我想启动一个代理,并通过它查看UI。 我尝试了一系列-client和-bind的组合,这似乎是所有这些的关键。 运用 docker […]

领事不注销僵尸服务

我正在用marathon部署一个简单的hello world nginx容器,除了我有6个容器不会从领事注销之外,一切似乎都很顺利。 docker ps显示没有容器正在运行。 我尝试使用/v1/catalog/deregister端点注销这些服务,但是它们不断回来。 然后,我杀了注册人的容器,并试图再次注销。 他们回来了。 我正在运行注册人 docker run -d –name agent-registrator -v /var/run/docker.sock:/tmp/docker.sock –net=host gliderlabs/registrator consul://127.0.0.1:8500 -deregister-on-success -cleanup 有1名领事代理正在运行。 重新启动计算机(这是本地虚拟机上的单个节点安装)不会使服务消失。 我如何使这些容器消失?

consul容器退出时出现协议版本错误

我正在为领事做一个容器,而且这个输出一直没有成功,好笑,我真的不认为这是一个错误 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents) 以下是我正在使用的命令: docker container run –net host –name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul 这是一个单一的节点全新安装与registry的最新版本,所以没有升级或版本不匹配与任何代理/客户端在这里发生。

dynamic可扩展和自适应架构

我是一名云计算博士生,我计划使用基于微服务的架构与consul和zeromq进行我的研究项目。 我有几个难以理解的问题。 有人能帮我分享他们的经验。 我们有基于docker的微服务,我们有zeromq,我们有领事。 你能否提一下我们如何将这三者结合起来,形成一个dynamic的适应性环境? 虽然我了解zeromq,docker和consul是个别的,但是我仍然无法清楚地了解它们是如何作为一个整体来运行的。我们有一个在主机上运行微服务的docker容器。 我们使用zeromq在Docker容器之间传输消息(Pub-sub / pipeline)。 这些容器可能运行在相同的主机/数据中心或不同的主机/数据中心上。 然后,我们使用领事进行服务发现。这里我的理解是否正确? 架构如何根据工作负载dynamic扩展/缩小? 说,我有一个情况,我需要更多的工人节点进行特定的计算。 谁旋转了更多的工人节点。 哪个组件决定/做出这个决定? 是否有调度组件? 如果是这样,有人可以简单地解释它是如何发生的或哪个组件执行该function? 那么,领事的主要angular色是什么? 是否仅用于服务发现?是否也可用于configuration。 如果是这样,它的局限性是什么? 我看到,即使是zeromq也有服务发现机制,那么为什么我们需要领事呢? 如何在架构中传播节点信息的失败? 哪个组件负责? 这只是领事吗? 还是zeroMq呢? 请指教。

重新启动后,如何将IP保留在单个节点上的dockerized Consul群集中

我对Docker和Consul相当陌生,现在试图build立一个由3个dockerized节点组成的本地Consul Cluster。 我正在使用progrium/consul Docker镜像,并完成了整个教程和示例。 群集正常工作,直到重新启动/重新启动。 这是我docker-compose.yml : — node1: command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217" image: progrium/consul ports: – "10.67.203.217:8300:8300" – "10.67.203.217:8400:8400" – "10.67.203.217:8500:8500" – "10.67.203.217:8301:8301" – "10.67.203.217:8302:8302" – "10.67.203.217:8301:8301/udp" – "10.67.203.217:8302:8302/udp" – "172.17.42.1:53:53/udp" restart: always node2: command: "-server -join 10.67.203.217" image: progrium/consul restart: always node3: command: "-server -join 10.67.203.217" image: progrium/consul restart: […]

如何使用初始的键值对数据在Docker上运行Consul?

我试图在Docker容器上调用一个Consul服务器,并将其作为我的SpringBoot云应用程序的configuration服务器。 为此,我想在Consul中有一些预configuration的数据(键值对)。 我在docker-compose.yml中的当前configuration是: consul: image: "progrium/consul:latest" container_name: "consul" ports: – '9330:8300' – '9400:8400' – '9500:8500' – '9600:53' command: "-server -bootstrap -ui-dir /ui" 有没有办法预先填充键值对?

Docker容器不能通过覆盖networking连接

我有多个运行Docker的主机,我使用Consul作为关键值存储。 我能够创build覆盖networking,容器可以看到对方的主机名和IP,当容器被创build/销毁时,/ etc / hosts被很好地更新。 但是,位于不同主机上的容器实际上不能相互连接(同一主机上的容器可以)。 我一直在调查日志,而Docker守护进程日志包含这些: [INFO] serf: EventMemberJoin: vagrant-ubuntu-trusty-64 192.168.57.103 [ERR] memberlist: Conflicting address for vagrant-ubuntu-trusty-64. Mine: 192.168.57.103:7946 Theirs: 192.168.57.102:7946 [ERR] serf: Node name conflicts with another node at 192.168.57.102:7946. Names must be unique! (Resolution enabled: true) Docker守护进程是否应该以某种方式标识自己? 看起来Serf是困惑的,因为每个守护进程只是使用主机名作为标识符。

Consul / Registrator体系结构 – 我需要在每个虚拟机上有一个独立的Consul代理吗?

我正尝试使用Consul和Registrator在各种虚拟机中使用微服务,但是我觉得我并没有太多东西。 我明白,注册人与Consul自动注册容器。 所以我想我会有一个虚拟机运行Consul,然后对于每个微服务,我会有一个虚拟机注册器+微服务。 但是,我无法让注册人在单独的虚拟机中与Consul代理进行交谈。 仔细查看build议的体系结构,似乎我需要在每个虚拟机上安装一个独立的Consul代理。 我理解对吗? 如果是这样,为什么? 注册者不应该只能将容器信息转发给任何虚拟机上的Consul代理? 另外,是否需要使用Consul代理和服务器在虚拟机上运行注册器?