Consul集羣部署

Consul

    consul是一種提供服務發現的工具,類似於zookeeper和etcd。但是它也有一些自己的一些特性:

        1:service discovery:consul通過DNS或者HTTP接口使服務註冊和服務發現變的很容易,一些外部服務,例如saas提供的也可以一樣註冊。

        2:health checking:健康檢測使consul可以快速的告警在集羣中的操作。和服務發現的集成,可以防止服務轉發到故障的服務上面。

        3:key/value storage:一個用來存儲動態配置的系統。提供簡單的HTTP接口,可以在任何地方操作。

        4:multi-datacenter:無需複雜的配置,即可支持任意數量的區域。


Consul的agent角色 

    Consul的agent分成Server和Client兩種角色,不論Server和Client都是Consul的節點,所有的服務都可以註冊到這些節點上,通過這些節點實現服務註冊信息的共享。

    Server和Client的區別在於,Server會把信息持久化到本地保存,便於故障後的恢復。而Client則是把服務信息轉發到Server,本身並不做持久化。


Consul集羣的部署

    這裏我們部署一個擁有3個Server的consul集羣,信息如下:

    node1:172.16.0.201

    node2:172.16.0.122

    node3:172.16.0.238


    1:下載consul軟件:https://www.consul.io/downloads.html

   

    2:解壓並部署

# unzip consul_1.4.3_linux_amd64.zip

     創建consul的相關目錄,並把解壓出來的程序文件拷貝到目錄

# mkdir -p /usr/local/consul/{bin,conf,logs,data}
# cp -rp consul /usr/local/consul/bin/consul

    3:創建consul配置文件

     這裏以172.16.0.201爲例:(各節點基本相似,注意修改node_name與ip)

# vi /usr/local/consul/conf/consul.json
     {
    "datacenter": "Amazon_fra",
    "data_dir": "/usr/local/consul/data/consul",
    "log_level": "INFO",
    "node_name": "SKUFRA000201",
    "server": true,
    "ui": true,
    "bootstrap_expect": 2,
    "bind_addr": "172.16.0.201",
    "client_addr": "172.16.0.201",
    "retry_join": ["172.16.0.238","172.16.0.122"],
    "retry_interval": "10s",
    "protocol": 3,
    "raft_protocol": 3,
    "enable_debug": false,
    "rejoin_after_leave": true,
    "enable_syslog": false
}

    4:分別在各節點啓動consul

# nohup /usr/local/consul/bin/consul agent -config-file /usr/local/consul/conf/consul.json >> /usr/local/consul/logs/consul.log 2>&1 &

    5:啓動完成後查看集羣成員,以及集羣的leader:

# /usr/local/consul/bin/consul members -http-addr=http://172.16.0.201:8500
Node          Address            Status  Type    Build  Protocol  DC          Segment
SKUFRA000122  172.16.0.122:8301  alive   server  1.4.3  3         amazon_fra  <all>
SKUFRA000201  172.16.0.201:8301  alive   server  1.4.3  3         amazon_fra  <all>
SKUFRA000238  172.16.0.238:8301  alive   server  1.4.3  3         amazon_fra  <all>
# curl http://172.16.0.201:8500/v1/status/leader
"172.16.0.201:8300"

       可以看到三臺節點的狀態爲alive。說明成員都已加入進羣,並運行正常。通過http接口查看leader,可以發現當前集羣中,172.16.0.201被選舉爲leader。

       到此集羣部署完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章