centos7上consul的安裝
一 下載
下載文件 wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip
unzip consul_0.6.4_linux_amd64.zip
拷貝到適當的位置
查看 consul -v
如果顯示出版本表示沒有問題。如果報錯請重新下載,或者查看環境變量是否設置正確
二打開端口
有8300 8500 8301 如果使用webui 請到官網 下載文件
三 配置集群 (如果是單機測試 用consul agent -dev就行了配置一台機器就可以了)
官網上是建議server3個或以上 client不限數量
此處 server用2個
服務兩台 : s1 192.168.1.81 s2 192.168.1.82
s1 執行以下命令
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n1 -bind=192.168.1.81 -dc=dc1
s2命令
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=192.168.1.82 -ui-dir ./dist -dc=dc1
-server 表示是server模式
-bootstrap-expect 2 表示是集群中有2台服務器 bootstrap該模式node可以指定自己作為leader ,如果是非leader可不加該參數
-data-dir /tmp/consul 目錄
-node=n2 該服務器節點名
-bind=192.168.1.82 節點綁定的ip
-ui-dir ./dist 非必須 webui的路徑 用web來管理consul
-dc=dc1 集群的名稱
執行 consul members
發現集群里並沒有其他的服務器
把服務器加入集群
s1 上執行
consul join 192.168.1.82
如果失敗 ,請看是否打開了8301端口
成功后 再次執行 consul members
會顯示有2個服務器節點
Node Address Status Type Build Protocol DC
n1 192.168.1.81:8301 alive server 0.6.4 2 dc1
n1 192.168.1.82:8301 alive server 0.6.4 2 dc1
如果你已經熟悉了,可以是用json格式的配置文件來設置
consul leave 宣布離開集群
當2個server的時候,退出一個,會沒有leader
當3個以上server的時候 退出一個,會在剩下的server中選出新的leader
s1 退出后重新加入 執行一下命令
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=192.168.1.81 -ui-dir ./dist -dc=dc1
consul join 192.168.1.82
關於重啟后 ,配置丟失的問題
我們打開n1和n2的/tmp/consul/raft/peers.json,將其內容統一修改為:
["192.168.1.81:8300","192.168.1.82:8300"]
然后重啟n2,但加上-rejoin命令:
$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=192.168.1.82 -ui-dir ./dist -dc=dc1 -rejoin
參考文章 http://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/
//查看版本
consul -v
