Tag: 领事

如何访问Docker覆盖networking中使用的Consul?

我确实设置了使用Consul的叠加多主机networking,没有Swarm。 我想根据自己的需要去接见领事。 当我在本地(在多个docker机上)运行我的docker工程师基础设施时,我无法使用以下方法: consul members –rpc-addr=192.168.99.100:8500 这不会返回任何东西。 端口8500是唯一暴露的。 我看到8300 (和其他一些端口)也是开放的,但没有暴露。 我应该公开8300? 为什么Docker /虚拟机使用8500?

我的docker图片是否需要自己的领事客户端实例?

我有一个docker化的应用程序拆分在几个容器(几个前端和后端服务器,负载平衡器,MySQL,elasticsearch等)。 负载平衡器的configuration需要知道哪些容器已经启动,所以我正在向Consul服务发现注册服务。 但是我不太确定在每一个docker容器上运行一个consul代理是一个好主意,而不是使用docker主机监督所有正在运行的docker容器,并通过Consul的HTTP-API注册它们。 有什么我可以遵循的最佳做法?

领事如何与红移合作?

我们有一个由jijster生成的spring引导微服务项目。 Jhipster为我们build立了综合性的领事,从那以后我们并没有真正感动过。 我们正在使用RedShift进行新的部署,它应该处理服务发现和领事所做的其他任务,但是我们所有的服务仍然依赖于领事。 领事和红移有可能演得好吗? 一个人干扰另一个? 在我看来,领事将堵塞所有的交通,但我找不到任何消息来源表明他们是技术竞争。 如果有冲突,我们可以重构领事整合与红移工作吗?

运行官方的领事docker形象

我正在尝试通过执行以下操作来运行官方的Docker镜像 docker pull consul docker run -d –name=dev-consul -p 8500:8500 consul 当我尝试使用curl访问领事服务器时,我得到一个空的答复 vagrant@docker:~$ curl localhost:8500/v1/catalog/nodes –verbose * Hostname was NOT found in DNS cache * Trying ::1… * Connected to localhost (::1) port 8500 (#0) > GET /v1/catalog/nodes HTTP/1.1 > User-Agent: curl/7.35.0 > Host: localhost:8500 > Accept: */* > * Empty reply from server * […]

Swarm集群Consul设置

我目前正在尝试按照以下方式设置Docker集群: NodeA:SwarmManager1 + Consul1 NodeB:SwarmManager2 + Consul2 NodeC:SwamNode1(通告给Consul1)+ Consul3 NodeD:SwarmNode2(广告给Consul2) 我做了一些HAtesting,发现了以下的行为: 我在监视docker集群信息的同时重新启动了NodeB,并且我注意到在重启时,SwarmNode2与集群断开连接。 我的解释是,因为Consul2closures,并且Node2被configuration为连接到同一个Consul,它在集群透视图上变得不可用。 为了避免这个问题,为Swarm容器设置发现服务的正确方法是什么?

注册人不听docker事件

领事运行良好 注册人运行良好,但它不听泊坞仪式事件。 注册人为: docker run -d -h 10.153.6.131 -v /var/run/docker.sock:/tmp/docker.sock progrium / registrator consul://10.153.6.131:8500 也试过了 docker run -d -h 10.153.6.131 -P -v /var/run/docker.sock:/tmp/docker.sock progrium / registrator consul://10.153.6.131:8500 docker日志73acf7b7f687b6c02e35ccfa6e2a41e42eea18a27292befd87d65fc665d20320 2014/10/07 21:39:49注册人:在领事使用领事登记处后台://10.153.6.131:8500 但不是“听docker事件” 请帮助。

EC2 Docker领事集群

我确信这个答案是在那里,但是经过几次尝试我找不到或修复它。 这是用例: 1.>我有两个属于同一VPC的ec2实例,但具有不同的安全组 2.>这两个安全组都有22,80(公开),所有端口的所有stream量都打开了CIDR块10.20.0.0/16 3.> EC2实例的内部IP为10.20.0.51(server-1)和10.20.0.202(server-2) 4.>我正在使用以下命令在它们上运行两个dockerized consul服务器 server-1 : docker run -it -p 8400:8400 -p 8500:8500 -p 8600:53/udp -p 8301:8301 -p 8300:8300 -h node1 progrium/consul -server -advertise 10.20.0.51 -bootstrap-expect 2 server-2 : docker run -it -p 8400:8400 -p 8500:8500 -p 8600:53/udp -p 8301:8301 -p 8300:8300 –name node2 -h node2 progrium/consul -server -advertise 10.20.0.202 -join […]

订阅Consul键值

我正在尝试使用Consul的Key-Value API将JSONconfiguration传递给在其中一个容器中运行的应用程序。 它工作的很好,但API不提供任何pub-subfunction(只读/写/删除)的一个关键。 到目前为止,我设法通过使用Watchfunction人为地补偿重新启动容器,每当关键更改,但是这留下了需要 外部configurationConsul(加载一个新的configuration,或者使用CLI,指定一个要监视的密钥,并运行一个shell脚本) 在中途重新启动我的应用程序 – 一个潜在的数据丢失的好方法。 是否有任何程序化的方式(每隔X秒轮询除外)获得领事关键变更的通知,还是应该退出此解决scheme,并转移到Redis?

在终止整个实例之后,Consul代理仍然被标记为临界状态

我正在docker运行的领事和使用gliderlabs/consul-agent在这里,我如何启动代理: (export IP44=$(wget -qO- 169.254.169.254/latest/meta-data/local-ipv4);consul agent -config-dir=/config -data-dir /opt/consul -advertise $IP44 -atlas=${ATLAS_REPO} -atlas-join -atlas-token=${ATLAS_TOKEN}) 在/config有一个agent.json文件,其中包含以下内容(来自该agent.json映像的缺省值): { "client_addr": "0.0.0.0", "data_dir": "/data", "leave_on_terminate": true, "dns_config": { "allow_stale": true, "max_stale": "1s" } } 问题是,当我终止我的实例,我仍然看到它在阿特拉斯控制台和它的标记为 代理不活或无法访问 如果我终止了很多实例,地图集中会有很多节点显示为不活动和失败的检查,因此整个infracture被标记为有严重问题。 是不是leave_on_terminate应该解决问题? 如何解决这个问题? UPD 在这里,我在日志中看到: 2016-03-02 01:15:51 UTC+3 2016/03/01 22:15:51 [INFO] Graceful shutdown over 0 2016-03-02 01:15:51 UTC+3 2016-03-02 01:15:51 UTC+3 2016/03/01 22:15:51 […]

我怎么能告诉我的脚本,等待领事选举领导人,然后再尝试在启动时添加键/值对呢?

我的开发环境由一个容器中的一个本地领事服务器和另一个容器中的我的应用程序(与领导模板一起运行)组成,都与docker-compose链接。 我希望所有事情都能够无缝地进行,无需人工干预(安全性不是问题),所以我希望通过挂载特定的文件以编程方式在启动时向用户添加默认的键/值对。 我一直在遇到这个问题,每当我尝试添加k / v对在启动使用API​​的领事,它失败了一个错误2016/06/03 21:10:15 [ERR] http: Request PUT /v1/kv/app/secret_key, error: No cluster leader from=[::1]:58888 。 如果我在手边加上一个睡眠命令,给领事足够的时间来选举一个领导者,它就会起作用。 但是,必须有一个更好的方法来做到这一点,对吧? 特别是当集群中只有一个节点时。 这是我迄今为止。 Dockerfile FROM voxxit/consul ARG REFRESHED_AT="2016-06-01" ARG DOCKERIZE_VERSION="v0.2.0" ENV CONSUL_ADDR="http://localhost:8500" ADD "https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz" /tmp RUN set -x && \ apk add –update curl jq && \ cd /tmp && \ tar -C /usr/local/bin -xzvf dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz && […]