文檔: https://www.consul.io/docs/install
一、什麼是consul
1、Consul 是 HashiCorp 公司推出的開源軟體,用于實作分布式系統的服務發現與配置。
Consul 是分布式的、高可用的、 可橫向擴充的
2、官方網站:
https://www.consul.io/
3、Consul 叢集間使用了 Gossip 協定通信和 raft 一緻性算法
[安裝]
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
驗證是否安裝完成
consul version
三台伺服器上都有進行安裝
建立資料目錄
mkdir -p /data/consul-data
chown -R consul:consul /data/consul-data
[配置檔案]
vim /etc/consul.d/server.json
第一台:
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-1",
"server": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.1"
}
第二台: 修改node_name,bind_addr
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-2",
"server": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.2"
}
第三台:
{
"data_dir": "/data/consul-data/",
"log_level": "INFO",
"node_name": "server-3",
"server": true,
"ui": true,
"bootstrap_expect": 2,
"client_addr": "0.0.0.0",
"bind_addr": "172.18.10.3"
}
對應的指令:
nohup /usr/local/soft/consul agent -server -bind=172.17.0.2 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/data/consul/da -node=server-2 >/dev/null 2>&1 &
-server:以server身份啟動
-bootstrap-expect=2:叢集要求的最少server數量
-bind:監聽的ip
-client:用戶端ip,0.0.0.0表示不限制用戶端ip
-data-dir:指定存放資料的目錄
-node:指定節點id,注意:同一叢集内節點id不允許重複
-ui: 允許通路web ui
添加systemctl服務管理
vim /lib/systemd/system/consul.service
如果是使用yum安裝的,已經存在該服務
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl
[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
[啟動服務]
systemctl start consul.service
[操作]
# 檢視版本
consul verion
# 檢視目前節點的資訊
consul info
# 檢視consul叢集成員數量
consul members
# 退出叢集
consul leave