【開發工具】Consul使用:2、LinuxCentos7上安裝consul並部署集羣

  1. 上傳文件consul_1.4.0_linux_amd64.zip到/opt下
  2. Unzip consul_1.4.0_linux_amd64.zip #後出現一個文件consul

  1. sudo chown root:root consul #如果沒有root權限,給與
  2. sudo mv consul /usr/local/bin/
  3. consul –version #檢查是否成功
  4. consul -autocomplete-install #設置子命令自動安裝
  5. complete -C /usr/local/bin/consul consul
  6. 創建非特權用戶操作consl

         sudo useradd --system --home /etc/consul.d --shell /bin/false consul

         sudo mkdir --parents /opt/consul

         sudo chown --recursive consul:consul /opt/consul

  1. 配置

         sudo touch /etc/systemd/system/consul.service

         #在consul.service上創建consul服務

 

[Unit]

Description="HashiCorp Consul - A service mesh solution"

Documentation=https://www.consul.io/

Requires=network-online.target

After=network-online.target

ConditionFileNotEmpty=/etc/consul.d/consul.hcl

 

[Service]

User=consul

Group=consul

ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/

ExecReload=/usr/local/bin/consul reload

KillMode=process

Restart=on-failure

LimitNOFILE=65536

 

[Install]

WantedBy=multi-user.target

 

爲該[Unit]節設置以下參數:

  • Description - 描述領事服務的自由格式字符串
  • Documentation - 鏈接到領事文檔
  • Requires - 配置對網絡服務的需求依賴性
  • After - 在領事服務之前配置對正在啓動的網絡服務的排序依賴性
  • ConditionFileNotEmpty - 在啓動consul之前檢查非零大小的配置文件

爲該[Service]節設置以下參數:

  • UserGroup - 作爲領事用戶運行領事
  • ExecStart- 使用agent參數和配置文件的路徑 開始consul
  • ExecReload - 向consul發送重載信號以觸發領事中的配置重新加載
  • KillMode - 將領事視爲一個過程
  • Restart - 重新啓動consul,除非它返回一個乾淨的退出代碼
  • LimitNOFILE - 爲文件描述符設置增加的限制

爲該[Install]節設置以下參數:

  • WantedBy - 創建由多用戶運行級別啓動的consul的弱依賴性

 

  1. 配置consul服務器

創建配置文件

sudo mkdir --parents /etc/consul.d

sudo touch /etc/consul.d/consul.hcl

sudo chown --recursive consul:consul /etc/consul.d

sudo chmod 640 /etc/consul.d/consul.hcl

vim / etc/consul.d/consul.hcl

#用於部署Consul集羣的數據中心的標識符

datacenter = "dc1"

data_dir = "/opt/consul"

#指定用於加密Consul網絡流量的密鑰

encrypt = "Luj2FZWwlt8475wD1WtwUQ=="

  1. 集羣自動加入

retry_join參數添加到consul.hcl配置文件中:

Vim /etc/consul.d/consul.hcl

retry_join = ["172.16.0.11"]

  1. 性能參數配置

raft_multiplier - Consul服務器用於縮放關鍵Raft時序參數的整數乘數。將此值設置爲1將將Raft配置爲其最高性能模式,相當於0.7之前的Consul的默認時間,建議用於生產Consul服務器。

Vim /etc/consul.d/consul.hcl

performance {

  raft_multiplier = 1

}

  1. 可配置監控遙測配置參數
  2. 配置consul server的數量

sudo touch /etc/consul.d/server.hcl

sudo chmod 640 /etc/consul.d/server.hcl

vim /etc/consul.d/server.hcl

#此標誌用於控制代理是處於服務器模式還是客戶端模式

server = true

#提供數據中心中預期的服務器數。不應提供此值,或者該值必須與羣集中的其他服務器一致。

bootstrap_expect = 3

 

  1. 制定機器可啓動consul UI/

vim /etc/consul.d/server.hcl

#在選擇某一臺server上啓動

ui=true

  1. 啓動consul

sudo systemctl enable consul

sudo systemctl start consul

sudo systemctl status consul

每臺機器都一樣的操作即可,再依次在每臺機器上選擇加入主機集羣

consul join 主機

首先在主機上172.20.10.1 (啓動的是consul和consul_ui)
consul agent -ui-dir /usr/local/consul_ui/ -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.1 -node=consul_01 -client 0.0.0.0 &(&是後臺啓動,這樣就不用再起shell)

然後在另外一臺172.20.10.2 (啓動的是consul)
 consul agent -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.2 -node=consul_02 &

最後一臺一樣的操作172.20.10.3 (啓動的是consul)
consul agent -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.3 -node=consul_03 &
加入集羣完成
在 172.20.10.1 中 : consul join 172.20.10.2 172.20.10.3 

問題:

啓動之後通過本機訪問失敗,主要原因是由於服務器的防火牆策略擋住了8500端口

firewall-cmd --zone=public --add-port=8500/tcp --permanent

systemctl stop firewalld.service

systemctl start firewalld.service

以上操作步驟來自官網

集羣搭建參考:https://blog.csdn.net/u010046908/article/details/61916389

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