天天看点

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

继续阅读