天天看點

CentOS7.X系統安裝部署Consul1.4.2

本文介紹使用docker方式安裝consul和傳統方式部署:

一、基于docker安裝部署consul:

1、直接docker run運作consul,下載下傳consul1.4.2鏡像

2、将consul鏡像内的/consul目錄拷貝至本地儲存,資料資訊持久化

# export CONSULE_CONTANER_ID=docker ps -aq
# docker cp ${containerId}:/consul /software/consul
# docker rm -f consul
           

3、啟動consul服務

4、配置開戶8500防火牆端口,浏覽器即可通路了

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

浏覽器通路consul部署位址:http:192.168.8.129:8500

CentOS7.X系統安裝部署Consul1.4.2

二、傳統方式安裝部署

1、安裝依賴,下載下傳安裝包

# yum -y install wget unzip zip
# wget -c https://releases.hashicorp.com/consul/1.4.2/consul_1.4.2_linux_amd64.zip
# unzip consul_1.4.2_linux_amd64.zip -d /usr/bin
           

2、建立配置檔案目錄

# mkdir /software/consul/logs
# mkdir /etc/consul.d/
# vi /etc/consul.d/basic.json
{
"ports": {
"http": 8500 ,
"dns": 8600,
"grpc": 8400,
"serf_lan": 8301,
"serf_wan": 8302,
"server": 8300
}
}
           

備注:consul的預設使用的端口有8500 8600 8400 8301 8302 8300

3、配置consul系統服務

# vi /etc/init.d/consul
#!/bin/bash
#chkconfig: 2345 89 10
#description: consul Start Stop Restart
#processname: consul
EXCMD=consul
StartDir=/usr/bin/${EXCMD}
pid=ps -ef|grep -v grep| grep consul |awk '{print $2}'
case $1 in
start)
nohup ${StartDir} agent -server -ui -advertise=192.168.8.129 -bind=192.168.8.129 -client=0.0.0.0 -data-dir /software/consul/data -bootstrap-expect 1 -log-file /software/consul/logs/ -config-dir /etc/consul.d > /dev/null 2>&1 &
;;
stop)
kill -9 $pid
;;
restart)
kill -9 $pid
nohup ${StartDir} agent -server -ui -advertise=192.168.8.129 -bind=192.168.8.129 -client=0.0.0.0 -data-dir /software/consul/data -bootstrap-expect 1 -log-file /software/consul/logs/ -config-dir /etc/consul.d > /dev/null 2>&1 &
;;
esac
exit 0
           

4、對consul系統服務授權添加自啟動

# chmod +x /etc/init.d/consul
# chkconfig --add consul
# chkconfig --level 2345 consul on
# chkconfig --list consul
           

5、防火牆端口開放

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

浏覽器通路consul部署位址:http:192.168.8.129:8500

6、Consul啟動參數說明:

Consul的啟動可以添加如下參數,有些參數是相沖突的,不能同時使用

-advertise:通知展現位址用來改變我們給叢集中的其他節點展現的位址,一般情況下-bind位址就是展現位址

-bootstrap:用來控制一個server是否在bootstrap模式,在一個datacenter中隻能有一個server處于bootstrap模式,當一個server處于bootstrap模式時,可以自己選舉為raft leader。

-bootstrap-expect:在一個datacenter中期望提供的server節點數目,當該值提供的時候,consul一直等到達到指定sever數目的時候才會引導整個叢集,該标記不能和bootstrap公用

-bind:該位址用來在叢集内部的通訊,叢集内的所有節點到位址都必須是可達的,預設是0.0.0.0

-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。

-protocol:consul使用的協定版本

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

-syslog:開啟系統日志功能,隻在linux/osx上生效

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

繼續閱讀