1、集羣規劃node
consul藉助agent來運行,相似elk的logstash agent 或 zabbix監控系統的agent ,linux
每一個須要被發現的服務上,經過consul agent client 來收集服務自己的信息,而後向consul agent server彙報, consul server 能夠集羣部署。web
規劃一下:算法
序號 bootstrap |
節點ipapi |
節點名稱 瀏覽器 |
角色服務器 |
1ui |
193.168.30.207spa |
server-207 |
server |
2 |
193.168.30.208 |
server-208 |
server |
3 |
193.168.30.209 |
server-209 |
server & web ui |
這是按正式生產環境來規劃的,若是本機開發,有一個方便的dev模式(後面再講)。 上述表格中,咱們打算組建3個server節點的consul server cluster,另外有1個client,模擬客戶端以及充當consul的web admin ui(管理界面)。
2、下載安裝
一、本例以1.2.0爲例下載地址:
wget https://releases.hashicorp.com/consul/1.2.0/consul_1.2.0_linux_amd64.zip
二、下載文件後解壓到:opt/soft/consul下,若是沒有創建相關目錄
解壓後目錄爲:
三、查詢版本
1、啓動服務
3.1 啓動server端
基本的命令爲:
第一個節點(207機器啓動方式以下)
nohup ./consul agent -server -bind=193.168.30.207 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-207 >/dev/null 2>&1
第二個節點
nohup ./consul agent -server -bind=193.168.30.208 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-208 >/dev/null 2>&1
第三個節點
nohup ./consul agent -server -bind=193.168.30.209 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=client-209 -ui >/dev/null 2>&1 &
(第三個與前兩個服務有點區別就是添加了一個 ui,既能夠查看管理服務)
3.2 參數說明
-server 表示是以服務端身份啓動
-bind 表示綁定到哪一個ip(有些服務器會綁定多塊網卡,能夠經過bind參數強制指定綁定的ip)
-client 指定客戶端訪問的ip(consul有豐富的api接口,這裏的客戶端指瀏覽器或調用方),0.0.0.0表示不限客戶端ip
-bootstrap-expect=3 表示server集羣最低節點數爲3,低於這個值將工做不正常(注:相似zookeeper同樣,一般集羣數爲奇數,方便選舉,consul採用的是raft算法)
-data-dir 表示指定數據的存放目錄(該目錄必須存在)
-node 表示節點在web ui中顯示的名稱
3.3 組建cluster
如今咱們有了3個server node 其中一個node同時也爲web node,3個節點都是相互獨立的.
3.4 在任何一個節點運行下:
consul members,Consul info 可查看相關信息,既然以下:
3.5 集羣加入
(1)例如207作主節點,其餘兩個上加入集羣運行:consul join 193.168.30.207便可
(2)成功會輸出:
3.6 從集羣中撤出
在撤出節點上執行:consul leave
3.7 web ui
啓動成功後,終端窗口不要關閉,能夠在瀏覽器裏,訪問下,相似 http://193.168.30.209:8500/,正常的話,應該會會出現如下截圖:
3.8 查看集羣狀態
3.9 禁止從新鏈接
consul force-leave