Consul集群未启动

标签 consul

我有 Consul 集群的 AWS 启动配置。到目前为止,它运行没有问题,但现在它不起作用。查询任何节点都会导致“未选举领导者”。

所以我通过 SSH 连接到该实例。 consul info 导致查询代理时出错:获取 http://127.0.0.1:8500/v1/agent/self: dial tcp 127.0.0.1:8500: getsockopt: 连接被拒绝

接下来我尝试了: $ ps -ef | grep 领事 领事 2760 1 0 Nov28 ? 00:01:38/usr/local/bin/consul 代理-server -config-file=/etc/consul.conf -data-dir=/tmp/consul -node=1.1.1.1_i-042b3e8f28c622a -bind=2.2。 2.2 -config-dir=/etc/consul.d (我在这里隐藏了 IP 和实例 ID)

查看日志我看到:

==> WARNING: Expect Mode enabled, expecting 3 servers
==> Starting Consul agent...
==> Consul agent running!
           Version: 'v0.8.3'
           Node ID: '6e0b3c-ad49-90d7-c8e2-121144a4ba'
         Node name: '1.1.1.1_i-029b3e8f28622a'
        Datacenter: 'dc1'
            Server: true (bootstrap: false)
       Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600)
      Cluster Addr: 2.2.2.2 (LAN: 8301, WAN: 8302)
    Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
             Atlas: <disabled>

==> Log data will now stream in as it occurs:

    2017/11/28 13:19:36 [INFO] raft: Initial configuration (index=0): []
    2017/11/28 13:19:36 [INFO] serf: EventMemberJoin: 1.1.1.1_i-029b3e8f28c46622a 2.2.2.2
    2017/11/28 13:19:36 [INFO] serf: EventMemberJoin: 1.1.1.1_i-029b3e8f28c46622a.dc1 2.2.2.2
    2017/11/28 13:19:36 [INFO] raft: Node at 2.2.2.2:8300 [Follower] entering Follower state (Leader: "")
    2017/11/28 13:19:36 [INFO] consul: Adding LAN server 1.1.1.1_i-029b3e8f28c46622a (Addr: tcp/2.2.2.2:8300) (DC: dc1)
    2017/11/28 13:19:36 [INFO] consul: Handled member-join event for server "1.1.1.1_i-029b3e8f28c22a.dc1" in area "wan"
    2017/11/28 13:19:36 [INFO] agent: Joining cluster...
    2017/11/28 13:19:36 [INFO] agent: No EC2 region provided, querying instance metadata endpoint...
    2017/11/28 13:19:36 [INFO] agent: Discovered 0 servers from EC2
    2017/11/28 13:19:36 [WARN] agent: Join failed: No servers to join, retrying in 30s
    2017/11/28 13:19:43 [ERR] agent: failed to sync remote state: No cluster leader

关于如何解决此问题有什么想法吗?

最佳答案

您应该引导集群以允许初始领导者选举,最简单的方法是使用 -bootstrap-expect 和集群中的服务器数量(对所有服务器使用相同的标志和值)。

有关引导集群的更多信息 - https://www.consul.io/docs/guides/bootstrapping.html

https://www.consul.io/docs/agent/options.html#_bootstrap

在您的情况下,它显示“警告:已启用预期模式,需要 3 个服务器”,因此在引导集群之前它需要 3 个服务器。我看你只用了两个?加入另一个,它应该可以工作...(对于共识系统,不建议少于 3 个)。

关于Consul集群未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47548298/

相关文章:

proxy - 尝试使用 sidecar 代理连接到网络时出现错误连接被拒绝

docker - 领事观看重要的领事检查

terraform - 使用 Vault 加密存储在 Consul 中的远程 Terraform 状态

ssl - Hashicorp Consul - 如何从 Kubernetes 集群中的 Pod 中执行经过验证的 TLS

java - Consul Java DNS SRV 查找

java - 带有微服务的 Spring REST 应用程序

tcp - 调用 tcp 127.0.0.1 :8500: getsockopt: connection refused in consul

consul - 在标签上过滤返回的 consul.io 服务

kubernetes - Spring Cloud Consul-服务未在K8s上注册可联系地址

symfony - 如何使用 Consul 服务发现处理 Symfony2 的运行时配置