一,consul简介
consul有很多组件,但是作为一个整体,它是一个为了在你的基础设置中配置和发现服务的工具。具有以下几个重要的特性:
服务发现:
consul的客户端提供服务,比如api或者mysql,其他的客户端可以利用conusl来发现这些服务。
使用DNS或者HTTP,应用程序可以方便的找到他们所需要的服务。健康检查
consul可以提供很多种健康检查,比如提供服务的webserver是否返回200,或者是集群中某个节点中的内存使用率是否低于90%。这些信息可以用来监控集群的健康状态,也被服务发现模块用来剔除不健康的服务,保证每次都路由到健康的服务中。kv存储
应用程序可以将consul的高可用key/value存储使用在如动态配置,特征标记,协调,leader选举等等场景中。使用简单的HTTP接口就能达到这样的效果。多数据中心
consul支持多数据中心开箱即用,这意味着consul用户不必担心随着数据中心的增长需要做额外的抽象层。
二,consul安装
1.安装包下载
- 执行以下命令,获取安装包(注意版本,本文档以64位centos7系统为例)
wget https://releases.hashicorp.com/consul/1.0.7/consul_1.0.7_linux_amd64.zip
- 另外也可以点我选择合适版本下载,自行上传至linux服务器中
2.解压安装包
- 执行以下命令,解压下载好的安装包
unzip consul_1.0.7_linux_amd64.zip
3.配置环境变量
- 执行以下命令,编辑/etc/profile文件
vi /etc/profile
- 在文件末尾加入以下行(根据实际路径自行修改path路径)
export PATH="$PATH:/home/consul"
- 依次按【Esc】【:】【wq!】键保存编辑的/etc/profile文件
- 执行以下命令,使配置的环境变量生效
source /etc/profile
4.确认是否安装成功
执行以下命令,看是否正常输出
consul --version
如果输出类似如下结果,则说明已经安装成功
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
三.consul集群安装
1.consul环境准备
- 准备三台linux服务器,本文档以ip分别为10.0.0.11,10.0.0.12,10.0.0.13三台服务器为例说明搭建consul集群
- 按照上述步骤【一.consul安装】分别在三台服务器上执行consul安装包安装工作
2.集群安装准备
分别在三台服务器中执行以下命令创建consul data和config存储文件夹,可按照实际情况创建
mkdir /home/consul/data mkdir /home/consul/config
防火墙端口开放,分别在三台服务器中执行以下命令,开放以下端口的访问权限
firewall-cmd --zone=public --add-port=8300/tcp --permanent;firewall-cmd --reload; firewall-cmd --zone=public --add-port=8301/tcp --permanent;firewall-cmd --reload; firewall-cmd --zone=public --add-port=8302/tcp --permanent;firewall-cmd --reload; firewall-cmd --zone=public --add-port=8500/tcp --permanent;firewall-cmd --reload; firewall-cmd --zone=public --add-port=8600/tcp --permanent;firewall-cmd --reload;
3.集群安装
在ip为10.0.0.11的服务器上执行以下命令,创建第一个集群节点
consul agent -server -bootstrap-expect=2 -data-dir=/home/consul/data -node=node1 -bind=10.0.0.11 \ -enable-script-checks=true -config-dir=/home/consul/config -ui -client=0.0.0.0 &
在ip为10.0.0.12的服务器上执行以下命令,创建第二个集群节点
consul agent -server -data-dir=/home/consul/data -node=node2 -bind=10.0.0.12 \ -enable-script-checks=true -config-dir=/home/consul/config -ui -client=0.0.0.0 &
在ip为10.0.0.13的服务器上执行以下命令,创建第三个集群节点
consul agent -server -data-dir=/home/consul/data -node=node3 -bind=10.0.0.13 \ -enable-script-checks=true -config-dir=/home/consul/config -ui -client=0.0.0.0 &
4.建立consul集群
- 重新开启一个连接10.0.0.11的客户端,执行以下命令建立集群
consul join 10.0.0.12 10.0.0.13
5.验证集群状态
输入以下命令,查看集群状态是否正常
consul members
如出现类似如下信息则说明集群安装成功
Node Address Status Type Build Protocol DC Segment node1 10.0.0.11:8301 alive server 1.0.7 2 dc1 <all> node2 10.0.0.12:8301 alive server 1.0.7 2 dc1 <all> node3 10.0.0.13:8301 alive server 1.0.7 2 dc1 <all>
浏览器查看
在浏览器中输入网址http://10.0.0.11:8500/ui应该可以查看到consul提供的集群界面