Linux下Consul集羣配置實踐

1、Consul官網

地址:https://www.consul.iohtml

說明:https://www.consul.io/intro/node

文檔:https://www.consul.io/docs/commands/linux

2、Consul功能

Service Discovery 服務發現web

Failure Detection 故障探測json

Multi Datacenter 多數據中心bootstrap

Key/Value Storage  KV存儲curl

3、配置環境

操做系統:CentOS 7.0tcp

軟件版本:consul-0.7.5測試

採用3節點consul serverui

192.168.1.101  

192.168.1.102

192.168.1.103

192.168.1.104

101,102,103作server,104作client

(一).Server端

https://www.consul.io/intro/getting-started/agent.html

1.安裝(全部節點)

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_web_ui.zip

mkdir /home/maxbill/consul/admin/

mkdir /home/maxbill/consul/webui/

unzip consul_0.7.5_linux_amd64.zip -d /home/maxbill/consul/admin/

unzip consul_0.7.5_web_ui.zip -d /home/maxbill/consul/webui/

注:/home/maxbill/consul/admin/和/home/maxbill/consul/webui/是我自定義的目錄

2.配置server cluster

101節點

consul agent -server -bootstrap -ui-dir=../webui/ -data-dir=data -client=0.0.0.0 -node=101

提示:-bootstrap通常只在集羣初始化時使用一次

單節點測試,還能夠-bootstrap-expect=1來自我選舉爲leader

102節點

consul agent -server -ui-dir=../webui/ -data-dir=data -client=0.0.0.0 

-join=192.168.192.101 -node=102

103節點

consul agent -server -ui-dir=../webui/ -data-dir=data -client=0.0.0.0 

-join=192.168.192.101 -node=103

若是沒有正常選出leader,能夠手動觸發bootstrap    consul join 192.168.192.101

參數說明:https://www.consul.io/docs/agent/options.html

-advertise:通知展示地址用來改變咱們給集羣中的其餘節點展示的地址,通常狀況下-bind地址就是展示地

                  址

-bootstrap:用來控制一個server是否在bootstrap模式,在一個datacenter中只能有一個server處於

                     bootstrap模式,當一個server處於bootstrap模式時,能夠本身選舉爲raft leader。

-bootstrap-expect:在一個datacenter中指望提供的server節點數目,當該值提供的時候,consul一直等

                                 到達到指定sever數目的時候纔會引導整個集羣,該標記不能和bootstrap公用

-bind:該地址用來在集羣內部的通信,集羣內的全部節點到地址都必須是可達的,默認是0.0.0.0

-client:consul綁定在哪一個client地址上,這個地址提供HTTP、DNS、RPC等服務,默認是127.0.0.1

-config-file:明確的指定要加載哪一個配置文件

-config-dir:配置文件目錄,裏面全部以.json結尾的文件都會被加載

-data-dir:提供一個目錄用來存放agent的狀態,全部的agent容許都須要該目錄,該目錄必須是穩定的,

                系統重啓後都繼續存在

-dc:該標記控制agent容許的datacenter的名稱,默認是dc1

-encrypt:指定secret key,使consul在通信時進行加密,key能夠經過consul keygen生成,同一個集羣中

                的節點必須使用相同的key

-join:加入一個已經啓動的agent的ip地址,能夠屢次指定多個agent的地址。若是consul不能加入任何指

          定的地址中,則agent會啓動失敗,默認agent啓動時不會加入任何節點。

-retry-join:和join相似,可是容許你在第一次失敗後進行嘗試。

-retry-interval:兩次join之間的時間間隔,默認是30s

-retry-max:嘗試重複join的次數,默認是0,也就是無限次嘗試

-log-level:consul agent啓動後顯示的日誌信息級別。默認是info,可選:trace、debug、info、warn、

                  err。

-node:節點在集羣中的名稱,在一個集羣中必須是惟一的,默認是該節點的主機名

-protocol:consul使用的協議版本

-rejoin:使consul忽略先前的離開,在再次啓動後仍舊嘗試加入集羣中。

-server:定義agent運行在server模式,每一個集羣至少有一個server,建議每一個集羣的server不要超過5個

-syslog:開啓系統日誌功能,只在linux/osx上生效

-ui-dir:提供存放web ui資源的路徑,該目錄必須是可讀的

-pid-file:提供一個路徑來存放pid文件,可使用該文件進行SIGINT/SIGHUP(關閉/更新)agent

端口說明:

dns - The DNS server, -1 to disable. Default 8600.

http - The HTTP API, -1 to disable. Default 8500.

https - The HTTPS API, -1 to disable. Default -1 (disabled).

rpc - The CLI RPC endpoint. Default 8400.

serf_lan - The Serf LAN port. Default 8301.

serf_wan - The Serf WAN port. Default 8302.

server - Server RPC address. Default 8300.

[root@admin]# consul version

Consul v0.7.5

Consul Protocol: 3 (Understands back to: 1)

[root@admin]# netstat -tunlp|grep consul

tcp6       0      0 :::8300                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8301                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8302                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8400                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8500                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8600                 :::*                    LISTEN      2581/consul         

udp6       0      0 :::8600                 :::*                                2581/consul         

udp6       0      0 :::8301                 :::*                                2581/consul         

udp6       0      0 :::8302                 :::*                                2581/consul 

https://www.consul.io/docs/agent/http/status.html

[root@admin]# curl localhost:8500/v1/status/leader

"192.168.192.101:8300"

[root@admin]# curl localhost:8500/v1/status/peers

["192.168.192.101:8300","192.168.192.102:8300","192.168.192.103:8300"]

3.web ui

http://192.168.192.101:8500/

http://192.168.192.102:8500/

http://192.168.192.103:8500/

由於全部consul server都安裝有web ui,所以,任意一臺consul server節點均可以查看

二.Client端

1.安裝

和server一致

2.配置consul agent

104節點

consul agent -data-dir=data -client=0.0.0.0 -join=192.168.192.101 -node=104

說明:客戶端沒有-server參數,web ui也可省略

[root@admin]# consul members

Node       Address                     Status   Type      Build     Protocol    DC

101         192.168.192.101:8301  alive      server    0.7.5     2               dc1

102         192.168.192.102:8301  alive      server    0.7.5     2               dc1

103         192.168.192.103:8301  alive      server    0.7.5     2               dc1

104         192.168.192.104:8301  alive      client      0.7.5    2               dc1

相關文章
相關標籤/搜索