consul 集群

安装

获取consul二进制文件 放到 /usr/local/bin/

配置

mkdir -p  /data/consul/log
mkdir -p /etc/consul.d
sudo useradd --system --home /etc/consul.d --shell /bin/false consul
sudo chown -R consul:consul /data/consul

配置文件 cat /etc/consul.d/consul.json

{
    "datacenter": "dc1",
    "node_name": "node1",
    "data_dir": "/data/consul",
    "bind_addr": "0.0.0.0",
    "client_addr": "0.0.0.0",
    "log_file": "/data/consul/log/",
    "log_level": "INFO",
    "bootstrap_expect": 1,
    "rejoin_after_leave":true,
    "server": true,
    "ui": true
}

注意:

  • 集群中每个数据中心只需要一台consul服务器配置bootstrap_expect or bootstrap
  • client_addr 管理(dns,http)当前 node ip,默认 127.0.0.1 如果没有nginx代理又使用了 ui,需要配置为 0.0.0.0
  • bind_addr 集群内部通信 ip,如果是内网集群,建议配置内网地址

启动(多台)

/usr/local/bin/consul agent -config-dir /etc/consul/

加入集群

xxx.xxx.xxx.xxx 任意一个已加入集群的node ip

加入lan
/usr/local/bin/consul join xxx.xxx.xxx.xxx
加入wan(不同数据中心)
/usr/local/bin/consul join -wan xxx.xxx.xxx.xxx

查看集群

/usr/local/bin/consul members
/usr/local/bin/consul members -wan
 /usr/local/bin/consul operator raft list-peers

常见问题及解决方案

  • memberlist: Failed fallback ping: No installed keys could decrypt the message
    配置所有agent 的 encrypt 一致
    可以用 consul keyring -list 检查
    配置没问题,还是不一致 可以 直接更改 /data/consul/serf/*.keyring

更多

https://www.consul.io/docs/

推荐阅读更多精彩内容

  • 一、Consul简介 Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go...
    QIQIHAL阅读 4,545评论 0 11
  • consul概念解析,集群搭建及作为配置中心与spring cloud集成 Consul是什么? Consul 官...
    暴走的初号机阅读 6,889评论 0 14
  • TIPS本文基于Consul 1.5.3,理论适用于Consul 1.6及更低版本。安装单机版Consul详见:《...
    周立_itmuch阅读 251评论 0 1
  • 与亲爱的王先生在一起的第一天,平平淡淡中一丝一丝的无花果甜。 除了答应的那一刻扑通扑通小鹿乱撞,剩下的一切回归平淡...
    今天也要快乐坚强阅读 113评论 0 0
  • 这世界,想陪你的人总是马上行动,无微不至。不想陪你的人总是在敷衍,借口张嘴就来,所以呀,想做了就去做,不要总是依赖...
    昶Akire阅读 128评论 0 3