天道酬勤,学无止境

consul

docker 反向代理 DNS/网络问题(docker reverse proxy DNS/networking issues)

问题 我会试着解释并画出来 我想要达到的目标: 对不起,糟糕的油漆图。 现在,如果我从 10.10.10.0 网络点击它,它就可以完美运行。 问题是 DNS 将 jenkins.network.com 解析为 10.10.10.0 网络。 我想通过代理返回,因为它具有 SSL 终止以到达 sonarqube 服务器。 有没有一种很好的方法来实现这一点,以保持代理后面的服务? 我是否需要创建第二个带有 docker 网络的 DNS 服务器? 这可能与 consul 让外部和内部服务都指向同一个域名有关吗? 编辑:做这样的事情会起作用,因为一切都通过代理。 因此,当詹金斯击中声纳时,它认为它的 ip 真的是 10.10.10.51 并且它可以通过那里击中它。 我需要它做什么:我需要它离开代理,然后通过代理返回。 IE: 172.16.10.2 ---- 172.16.10.1 ----- 10.10.10.50 ----- 代理然后接管路由到正确的位置(172.16.10.3:8080 或其他) 回答1 因为你没有发布你的作曲。 我做了一些假设。 假设的组成如下 version: '3' services: nginx: image: nginx ports: - 80:80 - 443:443 depends_on: - jenkins - sonar jenkins: image

2022-01-15 00:34:55    分类:技术分享    docker   networking   proxy   consul

docker engine swarm mode需要服务发现(Need for service discovery for docker engine swarm mode)

问题 我对 docker swarm 感到困惑。 据我所知,运行 swarm 的旧方法是在容器中运行 manager 和 workers,在 docker 引擎提供对 swarm 模式的本地支持之前。 旧的容器化 swarm 的文档解释了如何使用 consul、etcd 或 zookeeper 设置服务发现。 服务发现是必要的,因为服务在随机端口上运行以避免冲突,对吗? docker engine swarm mode 的文档没有解释如何设置服务发现。 现在我很困惑,如果该机制包含在 swarm 模式中,或者文档不完整。 我在哪里可以找到关于 swarm 模式的清晰、最新的解释,以及它与服务发现等概念的关系? 回答1 虽然@MagicMicky 给出的答案是正确的,但我将尝试添加更多关于 Swarm Legacy 和 Swarm Mode 之间关于服务发现的区别的上下文: 注意:我将 Swarm 的第一个版本称为Swarm legacy ,将新版本称为 Swarm模式。 使用 Swarm Legacy 进行服务发现 使用Swarm Legacy ,您必须部署自己的Zookeeper 、 Consul或Etcd来管理集群拓扑,这意味着节点被分配为集群中的代理。 这些分布式键/值存储用于健康监控和分布式锁定目的。 Swarm 没有使用这些来管理服务发现,而只是集群节点发现和监控。

2022-01-14 07:44:42    分类:技术分享    docker   containers   cluster-computing   docker-swarm   consul

动态可扩展和自适应架构(Dynamic Scalable and adaptive architecture)

问题 我是一名云计算博士生,我计划将基于微服务的架构与 consul 和 zeromq 一起用于我的研究项目。 我有几个我很难理解的问题。 有人可以帮我分享他们的经验。 我们有基于 docker 的微服务,我们有 zeromq,我们有 consul。 你能提到我们如何将这三者结合在一起以形成一个动态的自适应环境吗? 尽管我了解 zeromq、docker 和 consul 分别是什么,但我仍然无法清楚地了解它们是如何作为一个整体发挥作用的。我们有 docker 容器,其中在主机上运行着微服务。 我们使用 zeromq 在 docker 容器之间传输(Pub-sub/pipeline)消息。 容器可能在相同的主机/数据中心或不同的主机/数据中心上运行。 然后我们使用 consul 进行服务发现。我的理解是否正确? 架构如何根据工作负载动态扩展/缩减? 比如说,我有一段时间需要更多工作节点来进行特定计算。 谁启动了更多数量的工作节点。 哪个组件决定/做出这个决定? 有调度组件吗? 如果是这样,有人可以简要解释它是如何发生的或哪个组件执行该功能吗? 那么,领事的主要作用是什么? 它仅用于服务发现吗?它也可以用于配置。 如果是这样,它的局限性是什么? 我看到即使是zeromq也有服务发现机制,那我们为什么需要consul呢? 节点信息的故障如何在架构中传播? 哪个组件负责? 只是领事吗?

2022-01-13 11:58:39    分类:技术分享    docker   zeromq   microservices   consul

Dynamic Scalable and adaptive architecture

I am a PhD student in Cloud Computing, I plan to use the microservices based architecture with consul and zeromq for my research project. I had few questions that I am finding hard to understand. Can someone help me out in sharing their experience. We have microservices based on dockers, We have zeromq and we have consul. Can you mention how we could combine all the three together to have a dynamic adaptive environment? Though I understand as to what zeromq, docker and consul is individually, I am still unable to get a clear picture of how all of them function as a whole.We have docker

2022-01-10 17:14:08    分类:问答    docker   zeromq   microservices   consul

docker reverse proxy DNS/networking issues

I'll try to explain and draw this out What I want to achieve: Sorry for the crappy paint diagram. Right now, it works perfectly if I hit it from the 10.10.10.0 network. The problem is DNS resolves jenkins.network.com to the 10.10.10.0 network. I want to go back through the proxy though as that has SSL termination to get to the sonarqube server. Is there a good way to accomplish this to keep the services behind the proxy? Do I need to create a second DNS server with the docker network on it? Is this possible to do with consul to have both the external and internal services point to the same

2022-01-09 22:50:41    分类:问答    docker   networking   proxy   consul

Need for service discovery for docker engine swarm mode

I'm confused about docker swarm. As far as I know, the old way to run a swarm was to run manager and workers in containers, before docker engine provided native support for swarm mode. Documentation for the old, containerized swarm explained how to setup service discovery using consul, etcd or zookeeper. Service discovery is necessary, as services are ran at random ports to avoid collisions, right? Documentation for the docker engine swarm mode doesn't explain how to setup service discovery. Now I'm confused, if the mechanism is included in swarm mode, or is the documentation incomplete. Where

2022-01-09 06:43:14    分类:问答    docker   containers   cluster-computing   docker-swarm   consul

在 Nodejs 上使用 DNS 发现 Consul 服务(Consul service discovery with DNS on Nodejs)

问题 TL; 博士 大家好,我正在尝试通过 Consul DNS 接口从用 Express 编写的 nodejs 前端调用 nodejs 后端微服务,但出现错误。 我正在使用 nodejs dns api 为唯一节点应用程序设置 dns,以便对本地 Consul DNS 接口进行后续 dns.resolve() 调用。 目标 我希望能够向我的后端服务发出 http 请求,而无需在我的客户端代码中连接其 IP 和端口。 我也不想编写自定义代码来查询 Consul HTTP API,以便在我需要调用它时为我的服务获取 ip:port 对。 问题 问题是,当我使用 axios(类似于请求)对后端服务进行 HTTP 调用时,我总是收到错误消息,因为它无法解析地址。 Axios 似乎没有使用我之前设置的 dns: dns.setServers(['127.0.0.1:8600']); 更新_1 使用 consul 的 -recursor 命令行选项将虚拟机 (/etc/resolv.conf) 的 dns 设置为 localhost e,默认 dns 一切正常! 我仍然想了解我在仅在我的 nodejs 应用程序上设置 dns 时做错了什么。 设置 1 个带有 nodejs 进程的 FE 节点,运行带有 Expressjs 的简单网络服务器。 在 app.get('/') 路由中,它通过

2021-12-22 20:51:40    分类:技术分享    node.js   dns   consul   service-discovery

领事不会注销僵尸服务(Consul not deregistering zombie services)

问题 我正在使用马拉松部署一个简单的 hello world nginx 容器,一切似乎都运行良好,除了我有 6 个容器不会从 consul 注销。 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 个领事代理正在运行。 重新启动机器(这是本地虚拟机上的单节点安装)不会使服务消失。 如何让这些容器消失? 回答1 使用 http api 删除服务是另一个更好的解决方案。 在我弄清楚如何使用 https api 之前,我只是想出了如何手动删除服务。 要使用 http api 删除服务,请使用以下命令: curl -v -X PUT http://<consul_ip_address>:8500/v1/agent/service/deregister/<ServiceID> 请注意

2021-12-21 10:57:21    分类:技术分享    docker   registration   marathon   consul

Consul service discovery with DNS on Nodejs

TL;DR Hi all, I'm trying to call nodejs backend microservices from a nodejs frontend written in Express, through Consul DNS interface but I am having errors. I am using the nodejs dns api to set the dns for the sole node application in order to make subsequent dns.resolve() calls to the local Consul DNS interface. Target I would like to be able to make an http request to my backend service without the need to wire its IPs and ports in my client code. Neither I want to write a custom code to query the Consul HTTP API to get the ip:port couple for my service any time I need to call it. Problem

2021-12-13 02:16:35    分类:问答    node.js   dns   consul   service-discovery

运行 consul healthcheck 后状态为“Dead”的 Docker 容器(Docker container with status "Dead" after consul healthcheck runs)

问题 我正在使用 consul 的健康检查功能,并且不断收到这些“死”容器: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 20fd397ba638 progrium/consul:latest "\"/bin/bash -c 'cur 15 minutes ago Dead 什么是“死”容器? 停止的容器什么时候“死”了? 作为记录,我运行 progrium/consul + gliderlabs/registrator images + SERVICE_XXXX_CHECK 环境变量来进行健康检查。 它运行一个健康检查脚本,每 X 秒运行一个图像,类似于docker run --rm my/img healthcheck.sh 我对“死”的含义以及如何防止它发生感兴趣。 另一个奇怪的事情是我的死容器没有名字。 这是集装箱检查的一些信息: "State": { "Dead": true, "Error": "", "ExitCode": 1, "FinishedAt": "2015-05-30T19:00:01.814291614Z", "OOMKilled": false, "Paused": false, "Pid": 0, "Restarting": false, "Running": false,

2021-12-12 05:37:03    分类:技术分享    docker   consul