linux安装consul集群

时间:2023-12-24 21:38:01

一、集群规划

consul借助agent来运行,类似elk的logstash agent 或 zabbix监控系统的agent ,

每个需要被发现的服务上,通过consul agent client 来收集服务本身的信息,然后向consul agent server汇报, consul server 可以集群部署。

规划一下:

序号 

节点ip

节点名称

角色

1

193.168.30.207

server-207

server

2

193.168.30.208

server-208

server

3

193.168.30.209

server-209

server & web ui

这是按正式生产环境来规划的,如果本机开发,有一个方便的dev模式(后面再讲)。 上述表格中,我们打算组建3个server节点的consul server cluster,另外有1个client,模拟客户端以及充当consul的web admin ui(管理界面)。

二、下载安装

1、本例以1.2.0为例下载地址:

wget https://releases.hashicorp.com/consul/1.2.0/consul_1.2.0_linux_amd64.zip

2、下载文件后解压到:opt/soft/consul下,如果没有建立相关目录

解压后目录为:

linux安装consul集群

3、查询版本

linux安装consul集群

一、启动服务

3.1 启动server端

基本的命令为:

第一个节点(207机器启动方式如下)

nohup ./consul agent -server -bind=193.168.30.207 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-207 >/dev/null 2>&1

第二个节点

nohup ./consul agent -server -bind=193.168.30.208 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=server-208 >/dev/null 2>&1

第三个节点

nohup ./consul agent -server  -bind=193.168.30.209 -client=0.0.0.0 -bootstrap-expect=2 -data-dir=/home/tycoon/consul/data -node=client-209 -ui  >/dev/null 2>&1 &

(第三个与前两个服务有点区别就是添加了一个 ui,既可以查看管理服务)

3.2 参数说明

-server 表示是以服务端身份启动

-bind 表示绑定到哪个ip(有些服务器会绑定多块网卡,可以通过bind参数强制指定绑定的ip)

-client 指定客户端访问的ip(consul有丰富的api接口,这里的客户端指浏览器或调用方),0.0.0.0表示不限客户端ip

-bootstrap-expect=3 表示server集群最低节点数为3,低于这个值将工作不正常(注:类似zookeeper一样,通常集群数为奇数,方便选举,consul采用的是raft算法)

-data-dir 表示指定数据的存放目录(该目录必须存在)

-node 表示节点在web ui中显示的名称

3.3 组建cluster

现在我们有了3个server node 其中一个node同时也为web node,3个节点都是相互独立的.

3.4 在任何一个节点运行下:

consul members,Consul info  可查看相关信息,既然如下:

linux安装consul集群

3.5 集群加入

(1)例如207做主节点,其他两个上加入集群运行:consul join 193.168.30.207即可

(2)成功会输出:

linux安装consul集群

3.6 从集群中撤出

在撤出节点上执行:consul leave

3.7 web ui

启动成功后,终端窗口不要关闭,可以在浏览器里,访问下,类似 http://193.168.30.209:8500/,正常的话,应该会会出现以下截图:

linux安装consul集群

3.8 查看集群状态

linux安装consul集群

3.9 禁止重新连接

consul force-leave