Linux下Consul集群配置实践

Stella981
• 阅读 569

一、Consul官网

地址:https://www.consul.io

说明:https://www.consul.io/intro/

文档:https://www.consul.io/docs/commands/

二、Consul功能

Service Discovery 服务发现

Failure Detection 故障探测

Multi Datacenter 多数据中心

Key/Value Storage  KV存储

三、配置环境

操作系统:CentOS 7.0

软件版本:consul-0.7.5

采用3节点consul server

192.168.1.101  

192.168.1.102

192.168.1.103

192.168.1.104

101,102,103做server,104做client

(一).Server端

https://www.consul.io/intro/getting-started/agent.html

1.安装(所有节点)

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_web_ui.zip

mkdir /home/maxbill/consul/admin/

mkdir /home/maxbill/consul/webui/

unzip consul_0.7.5_linux_amd64.zip -d /home/maxbill/consul/admin/

unzip consul_0.7.5_web_ui.zip -d /home/maxbill/consul/webui/

注:/home/maxbill/consul/admin/和/home/maxbill/consul/webui/是我自定义的目录

2.配置server cluster

101节点

consul agent -server -bootstrap -ui-dir=../webui/ -data-dir=data -client=0.0.0.0 -node=101

提示:-bootstrap一般只在集群初始化时使用一次

单节点测试,还可以-bootstrap-expect=1来自我选举为leader

102节点

consul agent -server -ui-dir=../webui/ -data-dir=data -client=0.0.0.0

-join=192.168.192.101 -node=102

103节点

consul agent -server -ui-dir=../webui/ -data-dir=data -client=0.0.0.0

-join=192.168.192.101 -node=103

如果没有正常选出leader,可以手动触发bootstrap    consul join 192.168.192.101

参数说明:https://www.consul.io/docs/agent/options.html

-advertise:通知展现地址用来改变我们给集群中的其他节点展现的地址,一般情况下-bind地址就是展现地

                  址

-bootstrap:用来控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于

                     bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为raft leader。

-bootstrap-expect:在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等

                                 到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap公用

-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0

-client:consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1

-config-file:明确的指定要加载哪个配置文件

-config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载

-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,

                系统重启后都继续存在

-dc:该标记控制agent允许的datacenter的名称,默认是dc1

-encrypt:指定secret key,使consul在通讯时进行加密,key可以通过consul keygen生成,同一个集群中

                的节点必须使用相同的key

-join:加入一个已经启动的agent的ip地址,可以多次指定多个agent的地址。如果consul不能加入任何指

          定的地址中,则agent会启动失败,默认agent启动时不会加入任何节点。

-retry-join:和join类似,但是允许你在第一次失败后进行尝试。

-retry-interval:两次join之间的时间间隔,默认是30s

-retry-max:尝试重复join的次数,默认是0,也就是无限次尝试

-log-level:consul agent启动后显示的日志信息级别。默认是info,可选:trace、debug、info、warn、

                  err。

-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名

-protocol:consul使用的协议版本

-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。

-server:定义agent运行在server模式,每个集群至少有一个server,建议每个集群的server不要超过5个

-syslog:开启系统日志功能,只在linux/osx上生效

-ui-dir:提供存放web ui资源的路径,该目录必须是可读的

-pid-file:提供一个路径来存放pid文件,可以使用该文件进行SIGINT/SIGHUP(关闭/更新)agent

端口说明:

dns - The DNS server, -1 to disable. Default 8600.

http - The HTTP API, -1 to disable. Default 8500.

https - The HTTPS API, -1 to disable. Default -1 (disabled).

rpc - The CLI RPC endpoint. Default 8400.

serf_lan - The Serf LAN port. Default 8301.

serf_wan - The Serf WAN port. Default 8302.

server - Server RPC address. Default 8300.

[root@admin]# consul version

Consul v0.7.5

Consul Protocol: 3 (Understands back to: 1)

[root@admin]# netstat -tunlp|grep consul

tcp6       0      0 :::8300                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8301                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8302                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8400                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8500                 :::*                    LISTEN      2581/consul         

tcp6       0      0 :::8600                 :::*                    LISTEN      2581/consul         

udp6       0      0 :::8600                 :::*                                2581/consul         

udp6       0      0 :::8301                 :::*                                2581/consul         

udp6       0      0 :::8302                 :::*                                2581/consul 

https://www.consul.io/docs/agent/http/status.html

[root@admin]# curl localhost:8500/v1/status/leader

"192.168.192.101:8300"

[root@admin]# curl localhost:8500/v1/status/peers

["192.168.192.101:8300","192.168.192.102:8300","192.168.192.103:8300"]

3.web ui

http://192.168.192.101:8500/

http://192.168.192.102:8500/

http://192.168.192.103:8500/

因为所有consul server都安装有web ui,因此,任意一台consul server节点都可以查看

二.Client端

1.安装

和server一致

2.配置consul agent

104节点

consul agent -data-dir=data -client=0.0.0.0 -join=192.168.192.101 -node=104

**说明:**客户端没有-server参数,web ui也可省略

[root@admin]# consul members

Node       Address                     Status   Type      Build     Protocol    DC

101         192.168.192.101:8301  alive      server    0.7.5     2               dc1

102         192.168.192.102:8301  alive      server    0.7.5     2               dc1

103         192.168.192.103:8301  alive      server    0.7.5     2               dc1

104         192.168.192.104:8301  alive      client      0.7.5    2               dc1

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Wesley13 Wesley13
2年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Stella981 Stella981
2年前
Consul
概述官方网站https://www.consul.io/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.consul.io%2F)架构!(https://oscimg.oschina.net/oscnet/upf9db2ae432bda5
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法参考文章:(1)Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.codeprj.com%2Fblo
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这