CentOS7.X系统安装部署Consul1.4.2

本文介绍使用docker方式安装consul和传统方式部署:
1、基于docker安装部署consul:
一、直接docker run运行consul,下载consul1.4.2镜像node


#docker run -d --name consul consul:1.4.2linux


二、将consul镜像内的/consul目录拷贝至本地保存,数据信息持久化docker


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


三、启动consul服务bootstrap


docker run -d --name=consul -v /software/consul:/consul --net=host consul:1.4.2 agent --bind=192.168.8.129 --server=true --node=consul --bootstrap-expect=1 --client=0.0.0.0 -ui浏览器


四、配置开户8500防火墙端口,浏览器便可访问了
#firewall-cmd --zone=public --add-port=8500/tcp --permanent
#firewall-cmd --reload
http:192.168.8.129:8500
CentOS7.X系统安装部署Consul1.4.2
2、传统方式安装部署
一、安装依赖,下载安装包bash


#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/bintcp


二、建立配置文件目录ide


#mkaid /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
}
}ui


备注:consul的默认使用的端口有8500 8600 8400 8301 8302 8300
三、配置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


四、对consul系统服务受权添加自启动


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


五、防火墙端口开放
#firewall-cmd --permanent --zone=public --add-port=8500/tcp
#firewall-cmd --reload
#firewall-cmd --zone=public --add-port=8500/tcp --permanent
#firewall-cmd --reload
http:192.168.8.129:8500
六、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