分配三台虛擬機: 192.168.5.125 192.168.5.128 192.168.5.129 在每台虛擬機上創建 /usr/consul 文件件 命令: mkdir /usr/consul mkdir /usr/consul-ui 常用命令command: agent作用:運行一個consu ...
分配三台虛擬機:
192.168.5.125
192.168.5.128
192.168.5.129
在每台虛擬機上創建 /usr/consul 文件件 命令: mkdir /usr/consul mkdir /usr/consul-ui
常用命令command:
- agent作用:運行一個consul agent
- Join 作用:將agent加入到consul cluster
- members作用:列出consul cluster集群中的members
常用選項option:
- -data-dir 作用:指定agent儲存狀態的數據目錄,這是所有agent都必須的,對於server尤其重要,因為他們必須持久化集群的狀態
- -config-dir作用:指定service的配置文件和檢查定義所在的位置,通常會指定為"某一個路徑/consul.d"(通常情況下,.d表示一系列配置文件存放的目錄)
- -config-file作用:指定一個要裝載的配置文件,該選項可以配置多次,進而配置多個配置文件(後邊的會合併前邊的,相同的值覆蓋)
- -dev作用:創建一個開發環境下的server節點,該參數配置下,不會有任何持久化操作,即不會有任何數據寫入到磁碟,這種模式不能用於生產環境(因為第二條)
- -bootstrap-expect作用:該命令通知consul server我們現在準備加入的server節點個數,該參數是為了延遲日誌複製的啟動直到我們指定數量的server節點成功的加入後啟動。
- -node作用:指定節點在集群中的名稱,該名稱在集群中必須是唯一的(預設採用機器的host)推薦:直接採用機器的IP
- -bind作用:指明節點的IP地址
- -server作用:指定節點為server,每個數據中心(DC)的server數推薦為3或5(理想的是,最多不要超過5),所有的server都採用raft一致性演算法來確保事務的一致性和線性化,事務修改了集群的狀態,且集群的狀態保存在每一臺server上保證可用性,server也是與其他DC交互的門面(gateway)
- -client作用:指定節點為client,若不指定為-server,其實就是-client
- -join作用:將節點加入到集群
- -dc作用:指定機器加入到哪一個dc
1.下載解壓
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文件
2. 分別把生成consul文件copy到剛纔創建的三個虛擬機的/usr/consul文件夾里
命令 :cd /usr/consul
cp ./consul (空格) /usr/consul
3. 下載consul web-UI
首先在usr創建consul-ui文件夾
mkdir /usr/consul-ui
cd /usr/consul-ui
wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_web_ui.zip
unzip consul_0.6.4_web_ui.zip
4.開啟埠配置
Vi /etc/sysconfig/iptables 文件中增加配置項
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8400 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8500 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8300 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8301 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 8301 -j ACCEPT
然後重啟service iptables restart
5.搭建consul集群
首先啟動192.168.5.125
命令: ./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.125 -bind=192.168.5.125 -dc=dc1 -advertise=192.168.5.125 -client=0.0.0.0 -ui-dir=/usr/consul-ui
特別註意:-ui-dir=/usr/consul-ui 此處事啟動consul web ui的關鍵
server 表示啟動的為consul server ,構建一個consul cluster 一般建議使用3或者5個consul server
bootstrap-expect 2表示期望的服務節點數目為2
-data-dir 數據目錄,如果該文件夾不存在則手工創建,如果在consul發生錯誤後,建議先清理該目錄文件
advertise 設置廣播地址,ip可以設置為公網ip
client 設置client訪問的地址
ui-dir web控制台目錄位置
註意 通過advertise client 才能在WAN上訪問consul,否則只能在LAN內訪問.
下麵分別啟動192.168.5.128和192.168.5.129,修改node節點和bind地址,
命令:
./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.128 -bind=192.168.5.128 -dc=dc1 -client=0.0.0.0
./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.129 -bind=192.168.5.129 -dc=dc1 -client=0.0.0.0
其中:
-server : consul服務 一般啟動都是3-5個
-bootstrap-expect 1 :服務的節點數目
-data-dir : 數據目錄 就是我們上面建的data所在的目錄
-advertise:廣播地址 填寫IP地址
-client:consul服務偵聽地址,這個地址提供HTTP、DNS、RPC等服務,預設是127.0.0.1所以不對外提供服務,如果你要對外提供服務改成0.0.0.0
-ui-dir : web-ui 所在的目錄
只有設置了advertise、client我們才能在公網上訪問
如果以區域網中,直接使用 consul members
如果是廣域網中,使用 consul members --rpc-addr=ip:8400
6. 啟動後訪問http://你的IP地址:8500/ui