consul 有agent client 和 server 兩種模式,通過3臺server 模式進行集群
下載
安裝
準備3臺服務器 192.168.0.150/192.168.0.151/192.168.0.152
- 如下命令啟動3個節(jié)點
#! /bin/bash
nohup ./consul agent -server -bootstrap-expect=3 -data-dir=/data/consul -node=192.168.0.150 -bind=192.168.0.150 -client=0.0.0.0 -datacenter=slien -ui >> log.out 2>&1 &
- 在另外兩個節(jié)點分別執(zhí)行
consul join 192.168.0.150
- 查看集群狀態(tài)
./consul operator raft list-peers
- 注銷服務
curl -X PUT http://192.168.0.150:8500/v1/agent/service/deregister/server-id
- server: 以server身份啟動。默認是client
- bootstrap-expect:集群要求的最少server數量,當低于這個數量,集群即失效。
- data-dir:data存放的目錄,更多信息請參閱consul數據同步機制
-node:節(jié)點id,集群中的每個node必須有一個唯一的名稱。默認情況下,Consul使用機器的hostname - bind:監(jiān)聽的ip地址。默認綁定0.0.0.0,可以不指定。表示Consul監(jiān)聽的地址,而且它必須能夠被集群中的其他節(jié)點訪問。Consul默認會監(jiān)聽第一個private IP,但最好還是提供一個。生產設備上的服務器通常有好幾個網卡,所以指定一個不會出錯
- client: 客戶端的ip地址,0.0.0.0是指誰都可以訪問(不加這個,下面的ui :8500無法訪問)
- ui: 可以訪問UI界面
- config-dir指定配置文件夾,Consul會加載其中的所有文件
- datacenter 指定數據中心名稱,默認是dc1