Consul初探-從安裝到運行

前言

偉大領袖毛主席說過:實踐是檢驗真理的惟一標準!通過上一篇的學習,我基本掌握了 Consul 的基本原理,接下來就是動手實踐了;Consul 的部署方式分爲兩種,分別是二進制包和docker方式,此次就以二進制包的方式進行實驗吧。html

本次實驗使用物料準備:

一、 Consul 服務器集羣 3 臺,系統爲 Centos7.0node

下載二進制包

訪問 Consul 的官方網站:https://www.consul.io,看懂很是牛逼的一句話,讓打造服務網格變簡單!而後大大的屏幕上放着兩個按鈕:Download or Get Started;表示你要麼當即開始幹要麼先學一段,右邊就是一個高大上的視頻操做介紹,看着就讓人熱血沸騰;這我哪裏能忍,點擊下載:https://www.consul.io/downloads.html ,話很少說,打開服務器的 ssh,果斷敲下一梭子:linux

cd /tmp
wget https://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip
unzip consul_1.5.1_linux_amd64.zip -d /usr/local/bin

編輯 /etc/profile 文件,添加環境變量,保存後退出。web

vi /etc/profile
export CONSUL_HOME=/usr/local/bin/consul
export PATH=$PATH:CONSUL_HOME

// 使用環境變量配置生效
source /etc/profile

驗證 Consul 安裝是否成功,在命令行輸入:consul算法

consul --version

輸出結果:docker

看到這個結果,我內心是很安慰的,不過如此嘛,一點都不像其它軟件,從下載源碼到編譯,從安裝 gcc 到 gdi+ 的依賴,先跑1萬個依賴文件的列表,Consul 也太 easy 了。bootstrap

入門必學必記文檔

幫助文檔:https://www.consul.io/docs/agent/options.html服務器

安裝好 Consul 後,在啓動程序以前,須要掌握一些配置參數,經過掌握這些參數,能夠一次性的成功運行 Consul 服務器集羣,經常使用的參數以下:網絡

參數名稱 用途
-server 此標誌用於控制代理是運行於服務器/客戶端模式,每一個 Consul 集羣至少有一個服務器,正常狀況下不超過5個,使用此標記的服務器參與 Raft一致性算法、選舉等事務性工做
-client 表示 Consul 綁定客戶端接口的IP地址,默認值爲:127.0.0.1,當你有多塊網卡的時候,最好指定IP地址,不要使用默認值
-bootstrap-expect 預期的服務器集羣的數量,整數,如 -bootstrap-expect=3,表示集羣服務器數量爲3臺,設置該參數後,Consul將等待指定數量的服務器所有加入集羣可用後,纔開始引導集羣正式開始工做,此參數必須與 -server 一塊兒使用
-data-dir 存儲數據的目錄,該目錄在 Consul 程序重啓後數據不會丟失,指定此目錄時,應確保運行 Consul 程序的用戶對該目錄具備讀寫權限
-node 當前服務器在集羣中的名稱,該值在整個 Consul 集羣中必須惟一,默認值爲當前主機名稱
-bind Consul 在當前服務器偵聽的地址,若是您有多塊網卡,請務必指定一個IP地址(IPv4/IPv6),默認值爲:0.0.0.0,也可用使用[::]
-datacenter 代理服務器運行的數據中心的名稱,同一個數據中心中的 Consul 節點必須位於同一個 LAN 網絡上
-ui 啓用當前服務器內部的 WebUI 服務器和控制檯界面
-join 該參數指定當前服務器啓動時,加入另一個代理服務器的地址,在默認狀況下,若是不指定該參數,則當前代理服務器不會加入任何節點。能夠屢次指定該參數,以加入多個代理服務器,
-retry-join 用途和 -join 一致,當第一次加入失敗後進行重試,每次加入失敗後等待時間爲 30秒
-syslog 指定此標誌意味着將記錄 syslog,該參數在 Windows 平臺不支持

啓動 Consul

終於來到這一步了,目前我手上有 3 臺嗷嗷待哺的 Centos-7.0 服務器,他們的IP地址分別是:ssh

  • 172.16.1.218
  • 172.16.1.219
  • 172.16.1.220

分別在三臺服務器輸入如下對應的命令

// 172.16.1.218
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-1 -client=0.0.0.0 -bind=172.16.1.218 -datacenter=dc1

// 172.16.1.219
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-2 -client=0.0.0.0 -bind=172.16.1.219 -datacenter=dc1 -join 172.16.1.218

// 172.16.1.220
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-3 -client=0.0.0.0 -bind=172.16.1.220 -datacenter=dc1 -join 172.16.1.218

上面的命令幾乎沒法再精簡,簡單來講,就是指定了 consul(-server) 集羣有3臺(-bootstrap-expect=3 )服務器(-node),指定當前主機客戶端偵聽地址爲( -client=0.0.0.0 ),由於我有多塊網卡,若是不指定,沒法運行127.0.0.1。綁定了當前主機的IP地址(-bind),指定了一個數據中心的名稱(-datacenter=dc1),後兩臺服務器在啓動的時候加入第一臺代理服務器(-join 172.16.1.218),同時指定了啓用每臺服務器的內置 WebUI 服務器組件(-ui),當三臺服務器都正確運行起來之後,Consul 集羣將自動選舉 leader,自動進行集羣事務,無需干預。

正常啓動的服務器應該輸出下面的信息

如今,我嘗試經過某臺服務器訪問 Consul 的 WebUI 控制檯,web 控制檯默認端口爲:8500,查看集羣狀態,輸入地址:

http://172.16.1.218:8500

上面的IP地址能夠是 3 臺 Consul 服務器中的任意一臺,打開網頁後,轉向 Nodes 菜單,能夠看到,由 3 臺代理服務器組成的集羣已成功啓動和運行,健康檢查都是草原的顏色,很是的健康。

在網頁控制檯中,除了了看到 Consul 的服務器集羣的信息,還能夠對 key/value 、ACL 等進行管理。

相關文章
相關標籤/搜索