Consul(三)[集群搭建]

本文详细介绍Consul集群的搭建过程,包括宿主机的配置、数据目录与配置目录的创建,以及如何运行代理来实现集群的组建。同时,文章还介绍了如何通过Web界面访问和管理集群,以及查看集群成员状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
consul官网:

https://www.consul.io/

consul的github地址:

https://github.com/hashicorp/consul

consul教程学习地址:

https://learn.hashicorp.com/consul

1.宿主机1-server-leader

1.获取宿主机IP

ifconfig

在这里插入图片描述

2.创建数据目录

sudo mkdir -p /tmp/consul

3.创建配置目录

sudo mkdir -p /etc/consul.d/

4.运行代理

#node1:
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n1 -bind=192.168.56.11 -ui  -config-dir /etc/consul.d -rejoin -join 192.168.56.11 -client 0.0.0.0
参数说明备注
agent运行代理非开发模式,开发模式:需要后面跟 -dev【consul agent -dev】
-server定义代理运行在服务器模式
-bootstrap-expect在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群该标记不能和bootstrap共用.
-data-dir提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-node节点在集群中的名称,在一个集群中必须是唯一的默认是该节点的主机名
-bind该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的默认是0.0.0.0
-ui启动web界面
-config-dir配置文件目录,里面所有以.json结尾的文件都会被加载
-rejoin使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-clientconsul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务对外提供服务改成0.0.0.0

在这里插入图片描述
没有启动其他宿主机上的consul之前,一直是没有leader的。
在这里插入图片描述
在宿主机2上运行起来后,n2加入到了n1,宿主机1上的节点n1变成了leader。
在这里插入图片描述

5.访问web页面

在宿主机2上运行起来后,n2加入到了n1,宿主机1上的节点n1变成了leader。
浏览器访问:

http://192.168.56.11:8500

会自动跳转到services的页面

http://192.168.56.11:8500/ui/dc1/services

在这里插入图片描述

2.宿主机2-server

1.获取宿主机IP

ifconfig

在这里插入图片描述

2.创建数据目录

sudo mkdir -p /tmp/consul

3.创建配置目录

sudo mkdir -p /etc/consul.d/

4.运行代理

#node2:
consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=192.168.56.12 -ui  -config-dir /etc/consul.d -rejoin -join 192.168.56.11 -client 0.0.0.0
参数说明备注
agent运行代理非开发模式,开发模式:需要后面跟 -dev【consul agent -dev】
-server定义代理运行在服务器模式
-bootstrap-expect在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群该标记不能和bootstrap共用.
-data-dir提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-node节点在集群中的名称,在一个集群中必须是唯一的默认是该节点的主机名
-bind该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的默认是0.0.0.0
-ui启动web界面
-config-dir配置文件目录,里面所有以.json结尾的文件都会被加载
-rejoin使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-clientconsul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务对外提供服务改成0.0.0.0

在这里插入图片描述

5.访问web页面

在宿主机2上运行起来后,n2加入到了n1,宿主机1上的节点n1变成了leader。
浏览器访问

http://192.168.56.12:8500

会自动跳转到services的页面

http://192.168.56.12:8500/ui/dc1/services

在这里插入图片描述

3.宿主机3-client

1.获取宿主机IP

ifconfig

在这里插入图片描述

2.创建数据目录

sudo mkdir -p /tmp/consul

3.创建配置目录

sudo mkdir -p /etc/consul.d/

4.运行代理

#node3
consul agent  -data-dir /tmp/consul -node=n3 -bind=192.168.56.13 -config-dir /etc/consul.d -rejoin -join 192.168.56.11
参数说明备注
agent运行代理非开发模式,开发模式:需要后面跟 -dev【consul agent -dev】
-server定义代理运行在服务器模式
-bootstrap-expect在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群该标记不能和bootstrap共用.
-data-dir提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-node节点在集群中的名称,在一个集群中必须是唯一的默认是该节点的主机名
-bind该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的默认是0.0.0.0
-ui启动web界面
-config-dir配置文件目录,里面所有以.json结尾的文件都会被加载
-rejoin使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-clientconsul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务对外提供服务改成0.0.0.0

在这里插入图片描述

5.访问web页面

因为在n3节点并没有设置ui,且没有对外服务的配置,所以,直接访问n1或者n2查看nodes即可确认n3是否加入成功!因为n3是client,不是server,所以不能在service中找到n3,只能在nodes中找到

http://192.168.56.11:8500/ui/dc1/nodes

在这里插入图片描述
或者

http://192.168.56.12:8500/ui/dc1/nodes

在这里插入图片描述

4.consul集群成员查看

在宿主机1或者宿主机2或者宿主机3中,新开一个终端

consul members
Node  Address             Status  Type    Build  Protocol  DC   Segment
n1    192.168.56.11:8301  alive   server  1.7.2  2         dc1  <all>
n2    192.168.56.12:8301  alive   server  1.7.2  2         dc1  <all>
n3    192.168.56.13:8301  alive   client  1.7.2  2         dc1  <default>

在这里插入图片描述

标题说明
Node节点
Address网络地址
Status状态
Type类型
Build版本
Protocol协议
DC数据中心
Segment分管部分

5.Agent关闭

agent退出中,Consul提醒其他集群成员,这个节点离开了.如果强行杀掉进程.集群的其他成员应该能检测到这个节点失效了.当一个成员离开,他的服务和检测也会从目录中移除.当一个成员失效了,他的健康状况被简单的标记为危险,但是不会从目录中移除.Consul会自动尝试对失效的节点进行重连.允许他从某些网络条件下恢复过来.离开的节点则不会再继续联系.
此外,如果一个agent作为一个服务器,一个优雅的离开是很重要的,可以避免引起潜在的可用性故障影响达成一致性协议.
方式1.在运行的consul agent页面直接使用Ctrl + c

Ctrl + c

方式2.在对应consul agent运行的宿主机上新开终端,执行

consul leave

方式3.强行kill【非优雅的关闭Agent】不建议使用

kill -9 pid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值