consul 配置管理,consul搭建

2023-10-16 1264阅读

温馨提示:这篇文章已超过527天没有更新,请注意相关的内容是否还可用!

前言window下安装linux下安装修改默认端口 方法一方法二 公网可以访问查看集群节点信息consul agent常用命令解读创建server服务器阿里云服务器部署高可用集群consul概念

consul 配置管理,consul搭建
(图片来源网络,侵删)

前言

有时发现点明一些理论知识,有助于我们理解概念。

consul和eureka一样,是用于分页式系统中服务注册和发现。与其他分布式服务注册与发现的方案,Consul的方案更”一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。与docker容器无疑配合。

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件。


Consul 的使用场景


1. docker 实例的注册与配置共享

2. coreos 实例的注册与配置共享

3. vitess 集群

4. SaaS 应用的配置共享

5. 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

window下安装

官方下载地址下载window版,解压得到一个可执行文件。

设置环境变量,让我们直接在cmd里可直接使用consul使命。在path后面添加consul所在目录例如D:\\soft\\consul_1.1.0_windows_amd64


启动consul命

consul agent -dev -ui -node=cy

-dev开发服务器模式启动,-node结点名为cy,-ui可以用界面访问,默认能访问。


测试地址

http://localhost:8500

出现界面即成功。

window下的使用到此即可,因为只会存在开发环境,而且能使用。不需要server和群集等概念。

linux下安装

官方下载地址下载linux版,上传到云服务器目录/home/soft

解压unzip consul_1.1.0_linux_amd64.zip,得到一个文件consul。

复制consul:cp consul /usr/local/xfdsb/,可以直接使用访问consul命令。

启动

consul agent -dev

结果如下:


有几个consul agent输出的重要信息:


节点名称:这是代理的唯一名称。默认情况下,这是机器的主机名,但您可以使用该-node标志对其进行自定义 。

数据中心:这是配置代理运行的数据中心。每个节点都必须设置其它向数据中心报告。-datacenter 标志可用于设置数据中心。对于单DC配置,代理将默认为“dc1”。

服务器:这表明代理是以服务器还是客户端模式运行。Server: false (bootstrap: false),表示不是以服务器模式运行,事实上-dev是开发服务器模式。

客户端地址:这是用于代理的客户端接口的地址。这包括HTTP和DNS接口的端口。默认情况下,它只绑定到localhost。

群集地址:这是用于集群中的Consul代理之间通信的地址和端口集。并非所有集群中的Consul代理都必须使用相同的端口,但该地址必须可供所有其他节点访问。

-dev:该模式不能用于生产环境,因为该模式下不会持久化任何状态,该启动模式仅仅是为了快速便捷的启动单节点consul

修改默认端口 方法一

使用-http-port命令行参数,例如修改成8080端口

consul agent -dev -http-port 8080 方法二

使用-config-dir命令行参数,指定配置文件

就是指定加载置文件的目录,该目录下所有的以.json结尾配置文件加载进去,它的加载顺序是根据26个字母的顺序加进行加载配置文件的。目录必需为consul.d,文件内容都是json格式的数据。默认后面文件定义配置会覆盖前面文件定义的配置。

例如/etc/consul.d目录下合建base-config.json:

{ \”ports\”:活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看 { \”http\”: 8080 } }

其它默认端口

dns : 默认8600.

http :默认8500.

https: 默认-1 (disabled).

serf_lan:默认8301.

serf_wan: 默认 8302.

server: 默认8300.

例如:

{

“ports”: {

“http”: 8080,

“dns”: 8601,

“serf_lan”: 8311,

“serf_wan”: 8312,

“server”: 8310

}

}

启动命令

consul agent -dev -config-dir /etc/consul.d/ 公网可以访问

使用-client 0.0.0.0

例如:

consul agent -dev -http-port 8080 -client 0.0.0.0 查看集群节点信息

命令:

consul members

结果如下:

Node Address Status Type Build Protocol DC Segmentn3 127.0.0.0:8301 alive server 1.1.0 2 dc1 node:节点名Address:节点地址Status:alive表示节点健康Type:server运行状态是server状态DC:dc1表示该节点属于DataCenter1 consul agent常用命令解读

-data-dir

作用:指定agent储存状态的数据目录,这是所有agent都必须的,对server尤其重要,因为他们必须持久化集群的状态

-config-dir

作用:指定service的配置文件和检查定义所在的位置。目录必需为consul.d,文件内容都是json格式的数据。配置详解见官方

-config-file

作用:指定一个要装载的配置文件

-dev

作用:开发服务器模式,虽然是server模式,但不用于生产环境,因为不会有任何持久化操作,即不会有任何数据写入到磁盘

-bootstrap-expect

作用: 参数表明该服务运行时最低开始进行选举的节点数,当设置为1时,则意味允许节点为一个时也进行选举;当设置为3时,则等到3台节点同时运行consul并加入到server才能参与选举,选举完集群才能够正常工作。 一般建议服务器结点3-5个。

-node

作用:指定节点在集群中的名称,该名称在集群中必须是唯一的(默认这是机器的主机名),直接采用机器的IP

-xfdsbd

作用:指明节点的IP地址,一般是0.0.0.0或者云服务器内网地址,不能写阿里云外网地址。这是Consul侦听的地址,它必须可以被集群中的所有其他节点访问。虽然绑定地址不是绝对必要的,但最好提供一个。

-server

作用:指定节点为server,每个数据中心(DC)的server数推荐3-5个。

-client

作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC

默认是127.0.0.1,只允许回环接口访问

10.-datacenter

作用:指定机器加入到哪一个数据中心中。老版本叫-dc,-dc已经失效

创建server服务器

上面的例子都是以-dev开发者服务器模式运行的,生产环境不是我想要的。下面以server模式运行consul.

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -node=agent-one -advertise=116.62.184.190 -xfdsbd=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

结果如下:

注意 Cluster Addr集群地址是我们上面advertise指定的ip地址

阿里云服务器部署高可用集群

2台阿里云服务器

云1:116.62.184.190和云2:139.196.123.97

在云1上创建consul服务器agent-one:

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -node=agent-one -advertise=116.62.184.190 -xfdsbd=0.0.0.0 -client=0.0.0.0

在云2上创建consul服务器agent-two:

consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -node=agent-two -advertise=139.196.123.97 -xfdsbd=0.0.0.0 -client=0.0.0.0

在云1上执行命令,将agent-one添加到agent-two:

consul join 139.196.123.97

表示当前consul服务器添加到139.196.123.97上面consul服务器

执行结果为Successfully joined cluster by contacting 1 nodes.表示添加成功,在云1或云2任意一台机器上执行consul members都会得到如下结果:

Node Address Status Type Build Protocol DC Segmentagent-one 116.62.184.190:8301 alive server 1.1.0 2 dc1 agent-two 139.196.123.97:8301 alive server 1.1.0 2 dc1

访问http://139.196.123.97:8500,注意阿里云安全组里允许访问8500端口

成功展示2台consul服务器。

consul概念

Agent: Consul集群中长时间运行的守护进程,以consul agent 命令开始启动. 在客户端和服务端模式下都可以运行,可以运行DNS或者HTTP接口, 它的主要作用是运行时检查和保持服务同步。

Client: 客户端, 无状态, 以一个极小的消耗将接口请求转发给局域网内的服务端集群.

Server: 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯. 每个数据中心的 server 数量推荐为 3 个或是 5 个.

Datacenter: 数据中心,多数据中心联合工作保证数据存储安全快捷

Consensus: 一致性协议使用的是Raft Protocol

RPC: 远程程序通信

Gossip: 基于 Serf 实现的 gossip 协议,负责成员、失败探测、事件广播等。通过 UDP 实现各个节点之间的消息。分为 LAN 上的和 WAN 上的两种情形。

参考

在CentOS 7上部署Consul 0.6.4

19171187

《consul 配置管理,consul搭建》来自互联网同行内容,若有侵权,请联系我们删除!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]