计算机系统应用教程网站

网站首页 > 技术文章 正文

consul 单机及集群安装部署,配置

btikc 2024-09-14 01:07:30 技术文章 28 ℃ 0 评论

1.下载文件

2.解压文件

unzip consul_1.6.1_linux_amd64.zip

3.复制到path路径

cp consul /usr/local/bin/

4.执行测试

consul agent -dev

a.修改默认端口

修改成8080端口

consul agent -dev -http-port 8080

b.配置公网可访问

使用-client 0.0.0.0

consul agent -dev -http-port 8080 -client 0.0.0.0

下面以server模式运行consul

consul agent -server -ui -bootstrap-expect=1 -data-dir=/data/consul -node=consul-svr -advertise=192.168.10.66 -bind=0.0.0.0 -client=0.0.0.0

-server:服务器模式

-ui:能webui展示

-bootstrap-expect:server为1时即选择server集群leader

-data-dir:consul状态存储文件地址

-node:指定结点名

advertise:本地ip地址

-client:指定可访问这个服务结点的ip

UI 访问

192.168.10.66:8500

查看集群状态(默认端口 8500)

consul members

修改默认端口为 8080

consul agent -server -ui -bootstrap-expect=1 -http-port 8080 -data-dir=/data/consul -node=consul-svr -advertise=192.168.10.66 -bind=0.0.0.0 -client=0.0.0.0

访问命令时出现提示:

[root@rancher-nginx consul]# consul members

Error retrieving members: Get http://127.0.0.1:8500/v1/agent/members?segment=_all: dial tcp 127.0.0.1:8500: connect: connection refused

改造如下:

[root@rancher-nginx consul]# consul members --http-addr 192.168.10.66:8080

Node Address Status Type Build Protocol DC Segment

consul-svr 192.168.10.66:8301 alive server 1.6.1 2 dc1

#consul集群部署

单节点部署后,各节点之间无感知

三个Consul Server现在还对彼此没有任何感知。它们都为单节点的集群,每个集群都仅包含一个成员。运行consul members来验证下。

由于启动Agent时绑定了IP地址,所以下面需要显示指定IP地址。默认连接地址是127.0.0.1:8500

检测:

consul members

Node Address Status Type Build Protocol DC Segment

consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh

4.加入集群

1].Consul发现机制

当一个Consul代理启动后,它并不知道其它节点的存在,它是一个孤立的单节点集群。

如果想感知到其它节点的存在,它必须加入到一个现存的集群。

要加入到一个现存的集群,它只用加入集群中任意一个现存的成员。

当加入一个现存的成员后,会通过成员间的通讯很快发现集群中的其它成员。

一个Consul代理可以加入任意一个代理,而不仅仅是服务节点。

为了让三个Server间能互相感知,这里就要让其它二个Server加入同一个集群中

consul join 10.5.90.4

Successfully joined cluster by contacting 1 nodes.

#如有报错,需带上目标IP及端口,如

# consul join --http-addr 192.168.2.211:8500 192.168.2.210

b) server 03 加入 01

consul join 10.5.90.4

Successfully joined cluster by contacting 1 nodes.

c) 任意1台访问

[root@Q-sh-pro-consul-zookeeper-3 /data/consul]# consul members

Node Address Status Type Build Protocol DC Segment

consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh

consul-svr-02 10.5.90.16:8301 alive server 1.6.1 2 sh

consul-svr-03 10.5.90.12:8301 alive server 1.6.1 2 sh

[root@Q-sh-pro-consul-zookeeper-1 /data/consul/consul_data]# consul members

Node Address Status Type Build Protocol DC Segment

consul-svr-01 10.5.90.4:8301 alive server 1.6.1 2 sh

consul-svr-02 10.5.90.16:8301 alive server 1.6.1 2 sh

consul-svr-03 10.5.90.12:8301 alive server 1.6.1 2 sh

d)通过HTTP API方式查询,在三个节点上任意一个节点执行:

# 查询集群leader

curl 10.5.90.12:8500/v1/status/leader

"10.5.90.4:8300"

# 查询集群成员

curl 10.5.90.4:8500/v1/status/peers

["10.5.90.4:8300","10.5.90.16:8300","10.5.90.12:8300"]

e)通过DNS方式来查询节点信息

查询结构为NAME.node.consul和NAME.node.DATACENTER.consul。以查询consul-svr-01为例:

dig @10.5.90.4 -p 8600 consul-svr-01.node.consul


dig @10.5.90.4 -p 8600 consul-svr-02.node.consul

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表