我是领事的新手,目前正在试验它。我根据这篇文章设置了集群:https://www.digitalocean.com/community/tutorials/an-introduction-to-using-consul-a-service-discovery-system-on-ubuntu-14-04 所有代理都处于“服务器”模式。然而,这个集群相当不稳定。当我在服务器上输入“exec consul members”命令时,我总是可以看到许多其他服务器处于“失败”状态(有时它们会恢复事件但很快又会失败)。我猜也许在编写配置文件时有一些技巧。

我使用 AWS EC2 实例来运行这些 consul 代理。

谢谢!
约里克

最佳答案

检查“失败”实例之一上的领事代理日志。如果有像 [WARN] memberlist: Refuting a suspect message[WARN] memberlist: Refuting a dead message 这样的重复条目,则意味着:

  • 您的代理能够与领事服务器通信,并自行注册;
  • 您的领事服务器无法与代理进行通信

  • 您需要确保您的安全组允许所有端口上的代理和服务器之间的流量,如下所述: https://www.consul.io/docs/agent/options.html#ports

    作为引用,这是我的安全组的样子。你会注意到 consul 代理被允许与 consul 服务器通信,并且 consul 服务器被允许在它们之间在所有 UDP 和 TCP 端口上与 consul 代理 PLUS 通信(这太过分了,我计划将其限制在领事)。


    您还需要确保使用内部 EC2 IP 地址在服务器和客户端之间进行通信。您不希望 gossip 流量传出到 EC2 区域的边缘并返回,如果您使用公共(public) IP 地址,就会发生这种情况。

    希望这可以帮助。

    关于amazon-ec2 - 领事集群频繁 "failed",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29156840/

    10-10 07:29