【问题标题】:Consul Data Center: Leader node not automatically selected after failure of previous leader nodeConsul 数据中心:前一个领导节点失败后没有自动选择领导节点
【发布时间】:2021-04-22 10:16:33
【问题描述】:

我是 Consul 的新手,我创建了一个带有 2 个服务器节点的数据中心。 我按照本文档中提供的步骤进行操作, https://learn.hashicorp.com/tutorials/consul/deployment-guide?in=consul/datacenter-deploy

节点已成功创建,并且在我启动服务时它们都处于同步状态。直到这一步,一切都运行良好。

但是,如果领导节点出现故障(脱机),我会遇到问题。在这种情况下,follower 节点不会自动承担leader 节点的角色,并且 Consul 整体变得无法访问服务。即使跟随节点仍在运行,也会停止响应请求。

谁能帮我了解我的设置到底出了什么问题,我如何才能让我的设置仍然有效,跟随节点自动成为领导节点并响应来自 API 网关的查询?

以下文档提供了一些指导,并讨论了实现“法定人数”以自动选择领导者。我不确定它是否适用于我的这种情况?

https://learn.hashicorp.com/tutorials/consul/recovery-outage-primary?in=consul/datacenter-operations#outage-event-in-the-primary-datacenter

编辑:

consul.hcl

First Server:

datacenter = "dc1"
data_dir = "D:/Hashicorp/Consul/data"
encrypt = "<key>"
ca_file = "D:/Hashicorp/Consul/certs/consul-agent-ca.pem"
cert_file = "D:/Hashicorp/Consul/certs/dc1-server-consul-0.pem"
key_file = "D:/Hashicorp/Consul/certs/dc1-server-consul-0-key.pem"
verify_incoming = true
verify_outgoing = true
verify_server_hostname = true
retry_join = ["<ip1>", "<ip2>"]

Second Server:

datacenter = "dc1"
data_dir = "D:/Hashicorp/Consul/data"
encrypt = "<key>"
ca_file = "D:/Hashicorp/Consul/certs/consul-agent-ca.pem"
cert_file = "D:/Hashicorp/Consul/certs/dc1-server-consul-1.pem"
key_file = "D:/Hashicorp/Consul/certs/dc1-server-consul-1-key.pem"
verify_incoming = true
verify_outgoing = true
verify_server_hostname = true
retry_join = ["<ip1>", "<ip2>"]

server.hcl:

第一台服务器:

server = true
bootstrap_expect = 2
client_addr = "<ip1>"
ui = true

第二台服务器:

server = true
bootstrap_expect = 2
client_addr = "<ip2>"
ui = true

【问题讨论】:

    标签: microservices consul consul-template consul-health-check hashicorp


    【解决方案1】:

    集群的大小和形成仲裁的能力绝对适用于这种情况。集群中至少需要 3 个节点,以便在不牺牲集群可用性的情况下容忍一个节点的故障。

    我建议阅读 Consul 的 Raft Protocol Overview 以及页面底部的 deployment table,以帮助了解使用各种集群大小提供的容错能力。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多