分配三台虚拟机:

192.168.5.125

192.168.5.128

192.168.5.129

在每台虚拟机上创建  /usr/consul 文件件  命令: mkdir /usr/consul mkdir /usr/consul-ui

常用命令command

  • agent作用:运行一个consul agent
  • Join  作用:将agent加入到consul cluster
  • members作用:列出consul cluster集群中的members

常用选项option

  • -data-dir 作用:指定agent储存状态的数据目录,这是所有agent都必须的,对于server尤其重要,因为他们必须持久化集群的状态
  • -config-dir作用:指定service的配置文件和检查定义所在的位置,通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录)
  • -config-file作用:指定一个要装载的配置文件,该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
  • -dev作用:创建一个开发环境下的server节点,该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘,这种模式不能用于生产环境(因为第二条)
  • -bootstrap-expect作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
  • -node作用:指定节点在集群中的名称,该名称在集群中必须是唯一的(默认采用机器的host)推荐:直接采用机器的IP
  • -bind作用:指明节点的IP地址
  • -server作用:指定节点为server,每个数据中心(DC)的server数推荐为3或5(理想的是,最多不要超过5),所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性,server也是与其他DC交互的门面(gateway)
  • -client作用:指定节点为client,若不指定为-server,其实就是-client
  • -join作用:将节点加入到集群
  • -dc作用:指定机器加入到哪一个dc

1.下载解压

wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip

unzip consul_0.6.4_linux_amd64.zip

解压出来的是一个consul文件

2.    分别把生成consul文件copy到刚才创建的三个虚拟机的/usr/consul文件夹里

命令 :cd  /usr/consul

cp  ./consul (空格) /usr/consul

3.    下载consul web-UI

首先在usr创建consul-ui文件夹

mkdir /usr/consul-ui

cd /usr/consul-ui

wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_web_ui.zip

unzip consul_0.6.4_web_ui.zip

4.开启端口配置

Vi /etc/sysconfig/iptables 文件中增加配置项

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8400 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8500 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8300 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8301 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 8301 -j ACCEPT

然后重启service iptables restart

5.搭建consul集群

首先启动192.168.5.125

命令: ./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.125 -bind=192.168.5.125 -dc=dc1 -advertise=192.168.5.125 -client=0.0.0.0 -ui-dir=/usr/consul-ui

特别注意:-ui-dir=/usr/consul-ui   此处事启动consul web ui的关键

server 表示启动的为consul server ,构建一个consul cluster 一般建议使用3或者5个consul server

bootstrap-expect 2表示期望的服务节点数目为2

-data-dir 数据目录,如果该文件夹不存在则手工创建,如果在consul发生错误后,建议先清理该目录文件

advertise 设置广播地址,ip可以设置为公网ip

client 设置client访问的地址

ui-dir web控制台目录位置

注意 通过advertise client 才能在WAN上访问consul,否则只能在LAN内访问.

下面分别启动192.168.5.128和192.168.5.129,修改node节点和bind地址,

命令:

./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.128 -bind=192.168.5.128 -dc=dc1 -client=0.0.0.0

./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.129 -bind=192.168.5.129 -dc=dc1 -client=0.0.0.0

其中:

-server : consul服务 一般启动都是3-5个

-bootstrap-expect 1 :服务的节点数目

-data-dir : 数据目录 就是我们上面建的data所在的目录

-advertise:广播地址 填写IP地址

-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

-ui-dir : web-ui 所在的目录

只有设置了advertise、client我们才能在公网上访问

如果以局域网中,直接使用 consul members

如果是广域网中,使用 consul members --rpc-addr=ip:8400

6. 启动后访问http://你的IP地址:8500/ui

Linux中Consul集群部署的更多相关文章

  1. Linux中Elasticsearch集群部署

    1.下载安装包elasticsearch-6.3.1  安装包自己下载,网上很多 2.安装位置在cd /usr/local/elasticsearch/目录下 3.因为ES使用root权限运行会报错, ...

  2. (1)Consul在linux环境的集群部署

    1.Consul概念 1.1什么是Consul? Consul是一种服务网格解决方案,是HashiCorp公司推出的开源组件,由Go语言开发,部署起来很容易,只需要极少的可执行程序和配置.同时Cons ...

  3. Linux之FineBI集群部署

    在企业应用中,通常单个计算机的配置是有限的,而企业应用又是高并发的需求,这个时候会通过计算机集群的方式来提高并发数,从而提高整体应用服务的性能.集群是将多台计算机作为一个整体来提供相关应用的服务.Fi ...

  4. linux安装consul集群

    一.集群规划 consul借助agent来运行,类似elk的logstash agent 或 zabbix监控系统的agent , 每个需要被发现的服务上,通过consul agent client ...

  5. 关于Linux单机、集群部署FastDFS分布式文件系统的步骤。

    集群部署:2台tarcker服务器,2台storage服务器. 192.168.201.86   ---------(trackerd+storage+nginx) 192.168.201.87   ...

  6. 【解决】docker 容器中 consul集群问题处理

    现象描述:   node1 和node2 日志反复出现 add remove node3节点. node3 节点 一直 驳回 node1 和node2 认为node3已经dead的消息  不断重启se ...

  7. rabbitmq在kubernetes中持久化集群部署

    背景 Javashop电商系统的消息总线使用的事rabbitmq,在订单创建.静态页生成.索引生成等等业务中大量采用异步消息系统,这个对于mq高可用的要求有两个重要的考量: 1.集群化 2.可扩容 3 ...

  8. Linux安装fastdfs集群部署

    过程问题: make: gcc:命令未找到 解决: yum -y install gcc 一.环境和版本: Linux环境:CentOS 7.6 libfastcommon版本:1.0.39 Fast ...

  9. 实战中的asp.net core结合Consul集群&Docker实现服务治理

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在 ...

随机推荐

  1. windows共享连接显示无法打开

    Ping目标地址和名称可以连通,但是访问告知无法打开或找到名称,看凭据设置正常,重启无效. 判断:可能是由于凭据过期引起,更新凭据,重启,仍旧无效. 修改IP地址进行访问,成功打开. 清理网络连接状态 ...

  2. 2018-2019第一学期Java助教心得

    随着期末考试落下了帷幕,本学习也结束了回顾本学期的历程,对我影响最深的还是这学期很幸运的成为代老师的助教,这也是我第一次接触助教工作.刚开始的时候我心里也有很多的担心,怕自己胜任不了这份工作,但随着时 ...

  3. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  4. S初始化生产环境数据

    一.将开发机的库文件导出10.10.1.139开发机服务器,桌面上的BAT文件,将数据库表结构和表数据导出来,导到E:\Repository,设置SADMIN密码永不过期BAT文件内容如下: ::导出 ...

  5. Spring Data JPA 参考指南 中文版

    附下载地址:https://www.gitbook.com/book/ityouknow/spring-data-jpa-reference-documentation/details

  6. HBase、HDFS与本地文件系统之间的关系

    一.文件系统 1. 概念 所谓文件系统,是操作系统用于明确磁盘或分区上的文件的方法和数据结构:即在磁盘上组织文件的方法.也指用于存储文件的磁盘或分区,或文件系统种类. 2. Local File Sy ...

  7. 安装运行 rovio odometry

    https://github.com/ethz-asl/rovio https://github.com/ethz-asl/kindr 1. 新建catkinworkspace mkdir -p ~/ ...

  8. table 合并行和列

    table合并行列,以及拆分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  9. 全新的css网站布局--Grid布局

    Grid布局全新的css网站布局 CSS Grid 布局由两个核心组成部分是 wrapper(父元素)和 items(子元素). wrapper 是实际的 grid(网格),items 是 grid( ...

  10. 洛谷 P2850 [USACO06DEC]虫洞Wormholes 判负环

    虫洞(wormhole) FJ 在农场上闲逛时,发现他的农场里有很多虫洞.虫洞是一条特殊的有向路径,当 FJ 从它的一头走到另一头后,他将被传送到过去的某个时刻.FJ 的每个农场包括 N(1<= ...