Consul部署与使用
- 一、Consul架构
- 1.1 Consul介绍
- 1.2 Consul 的使用场景
- 1.3 集群架构
- 二、Consul部署
- 2.1 下载与上传
- 2.1.1 Consul官网下载
- (1)下载
- (2)上传到各节点
- 2.2 部署
- 2.2.1解压:
- 2.2.2 创建软连接连接:
- 2.2.3 Consul 启动
- 2.3 consul验证
- 2.3.1 查看集群状态
- 2.3.2 访问Consul
一、Consul架构
1.1 Consul介绍
Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性:
服务发现:Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务.
健康检查:Consul客户端可用提供任意数量的健康检查,指定一个服务(比如:webserver是否返回了200 OK 状态码)或者使用本地节点(比如:内存使用是否大于90%). 这个信息可由operator用来监视集群的健康.被服务发现组件用来避免将流量发送到不健康的主机.
Key/Value存储:应用程序可用根据自己的需要使用Consul的层级的Key/Value存储.比如动态配置,功能标记,协调,领袖选举等等,简单的HTTP API让他更易于使用.
多数据中心:Consul支持开箱即用的多数据中心.这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域.
1.2 Consul 的使用场景
- docker 实例的注册与配置共享
- coreos 实例的注册与配置共享
- vitess 集群
- SaaS 应用的配置共享
- 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件
1.3 集群架构
IP | 主机 | 角色 |
192.168.1.101 | dev-node01 | dev-consul-server01 |
192.168.1.102 | dev-node02 | dev-consul-server02 |
192.168.1.103 | dev-node03 | dev-consul-server03 |
二、Consul部署
2.1 下载与上传
2.1.1 Consul官网下载
Consul官网提供最新版本可用下载,根据服务需求下载适合您的操作系统和体系结构的软件包:
(1)下载
官方下载地址:https://www.consul.io/downloads.html
(2)上传到各节点
根据个人习惯或工作要求上传对应目录(这里新建/opt/consul目录上传工具)
mkdir /opt/consul
# 使用rz上传(安装lrzsz: yum install lrzsz -y)
2.2 部署
2.2.1解压:
cd /opt/consul && unzip consul_1.1.0_linux_amd64.zip
2.2.2 创建软连接连接:
ln -s /opt/consul/consul /usr/local/bin/consul
2.2.3 Consul 启动
consul agent -server -bootstrap -ui -data-dir=/data/consul_data -bind=192.168.1.101 -client=0.0.0.0 -node=192.168.1.101
consul agent -server -join=192.168.1.101 -ui -data-dir=/data/consul_data -bind=192.168.1.102 -client=0.0.0.0 -node=192.168.1.102
consul agent -server -join=192.168.1.101 -ui -data-dir=/data/consul_data -bind=192.168.1.103 -client=0.0.0.0 -node=192.168.1.103
#
参数说明
-server: 定义agent运行在server模式
-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
-ui-dir: 提供存放web ui资源的路径,该目录必须是可读的
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载
-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0
2.3 consul验证
2.3.1 查看集群状态
consul members
Node Address Status Type Build Protocol DC Segment
192.168.1.101 192.168.1.101:8301 alive server 1.0.6 2 dc1 <all>
192.168.1.102 192.168.1.102:8301 alive server 1.0.6 2 dc1 <all>
192.168.1.103 192.168.1.103:8301 alive server 1.0.6 2 dc1 <all>
2.3.2 访问Consul
Consul访问地址:http://192.168.1.101:8500