安装
获取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