- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我构建了一个 3 节点的 Consul 集群。现在它们仅由 IP 地址表示。在阅读文档时,我不清楚如何将他们的位置暴露给其他想要查询的人。
我可以将当前领导者的 IP 地址硬编码到其他代理中,但这似乎不是最好的主意。我可以为每个节点分配一个 DNS 名称,但是如果由于网络问题导致领导者发生变化怎么办?那是问题吗?我查询/写入哪个节点重要吗?
我想我没有在任何地方读到解释集群设置的这一部分。当我启动一个需要查询 Consul 集群的新系统时,我如何自动让它知道 Consul 集群在哪里。
最佳答案
客户端需要连接主机,反之亦然。
如果您想自动化整个集群的启动过程,有几个选项:
您可以硬编码主机的地址——应该使用静态地址(客户端可以有动态 IP 地址)。这可以在内部甚至云环境中完成——例如,查看 AWS VPC 文档。这是最简单的方法。
您可以先启动 masters,每当客户端启动时,您可以向他提供 masters 的 IP 地址。例如,在云中,这可以使用用户数据自动完成。这也可以通过您的 IT 自动化工具(例如 ansible)实现自动化。它需要对引导过程进行一些修改,因为您需要在引导时编辑客户端配置,但这不会限制您使用硬代码地址。这种方法可能会减慢您的集群启动时间,因为现在可以串行了。然而,如果你足够努力,这是可以避免的(通过启动所有集群,并找到一种方法在运行时将 masters ip 地址传递给客户端,然后才启动客户端的 consul 进程)。
虽然我认为最优雅的是 #1,但这取决于您的需求。
无论如何,确保masters的IP地址在集群启动后不会改变。即使重启后。这是一种不好的做法。
此外,最好将所有三个 IP 地址都传递给客户端以获得高可用性(如果您选择 3 个主配置)。
关于consul - 为代理寻找 Consul 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703173/
Consul服务定义json如下 { "Address": "192.168.10.10", "TaggedAddresses": { "lan": "192.168.10
在 Consul 中,您可以拥有许多代理作为服务器或客户端。在所有服务器中,一个被选为领导者。从代理的角度来看,它怎么知道自己是领导者? 最佳答案 consul operator raft list-
对于 Eureka,服务可以直接将自己注册到 Eureka 服务器。为什么我们应该向 Consul 客户端而不是 Consul 服务器发送请求?让服务直接与Consul服务器通信有什么问题吗? 感谢您
我四处搜索,这似乎不可能,但我想确认我没有遗漏任何东西。我们正在向 consul 注册一个应用程序。当服务终止时,它会在一定时间后自动删除。如果可能的话,这个选项是可配置的吗? 最佳答案 我认为检查注
我正在使用 Traefik 在 Consul 中注册的不同服务之间进行负载平衡。 我正在使用consul-catalog配置并通过在 consul 中定义服务时添加标签来覆盖其中一项服务的前端路由规则
我正在尝试提出 consul用于生产目的的集群。我没有找到太多关于部署 consul 集群的最佳实践的信息。假设我想要一个包含 3 个节点的集群。我想知道以下场景之间有什么区别以及首选哪种场景。 正在
我发现在几种情况下,存储有关特定服务的附加元数据会很方便,但services API中似乎不支持自定义字段。 (只有基本的id、姓名、地址、端口)。例如,数据库名称或负载均衡器权重。 我对设计决策很好
所以我构建了一个 3 节点的 Consul 集群。现在它们仅由 IP 地址表示。在阅读文档时,我不清楚如何将他们的位置暴露给其他想要查询的人。 我可以将当前领导者的 IP 地址硬编码到其他代理中,
我目前是一名实习生,必须托管一个微服务应用程序。我选择将 AWS ECS 与 Fargate 任务结合使用来托管 Consul Connect Service Mesh,为应用程序提供服务发现、意图、
我将 Ocelot 和 API 网关与 Consul 和服务发现一起使用。我正在 Consul 中使用动态名称注册服务,例如:service.name.1234 和 service.name.5678
实现这个需要什么配置? 可以使用此处提到的“开发模式”- https://learn.hashicorp.com/consul/getting-started/agent (但不推荐用于生产)。 我试
我的 Prometheus 服务器从 Consul 获取它的目标列表(或“服务”,在 Consul 的行话中)。我只想监控这些目标的一个子集。这应该可以通过 Prometheus 的 regex 机制
我们使用 Consul 并且我们愿意强制开发人员只能使用 git2consul 方法来更改它,以保留属性更改的历史并维护备份。 为了确保这一点,我们希望使 Consul Key-Value 浏览器 U
当 Prometheus 使用 Consul 的自动发现功能来获取要监控的目标列表时,它也会自己获取 Consul 服务器。这很棒 - 我们想用 Prometheus 监控这些人。问题是Consul用
我有一个使用以下服务定义向 Consul 注册的测试服务: { "name": "web", "tags": ["web1"], "address": "example.com", "
我需要更改默认的 http 端口,因为另一个应用程序已经在使用 8500。 此命令有效: 领事信息-http-addr=http://127.0.0.1:18500 我无法弄清楚这等于配置文件中的什么
我试图在更新 consul 的 KV 对时获取它的锁,所以没有其他人可以更新它。 最初我有 curl -XGET http://localhost:8500/v1/kv/hosts?raw {"k1"
我想知道是否有办法过滤服务领事使用标签返回我。 终点: /v1/catalog/services 将服务映射返回到标签列表,并要求我在返回后解析服务。 我想知道是否有某种方法可以将我想要的标签(或多个
我正在尝试了解如何使用 Consul 进行应用程序领导者选举。我正在使用来自 java consul-client 的 LeaderElectionUtil。 我可以选举一个领导者,并且所有节点都同意
我决定关注this指导,我遇到了很多问题。 首先需要在 command 中指定 traefik 命令,否则我会遇到 entrypoint.sh 找不到的错误命令 storedata,是 > yaml
我是一名优秀的程序员,十分优秀!