目录

一.前言

二.Consul单机部署

三.Consul集群部署

四.克隆虚拟机方式添加client


一.前言

1. Consul架构

consul是分布式、高可用的系统,下图是单数据中心的部署架构

2. Consul特性

  • 服务发现:解决在分布式环境中,如何找到可用的服务地址的问题,支持通过DNS和HTTP查询服务地址。
  • 健康检查:定时监控服务是否正常,对于异常的服务会主动下线
  • 键值存储:配置中心解决方案,是一种key/value存储结构,区别就是key是以目录树结构形式组织的,可以用来存储系统配置信息
  • 多数据中心:支持多数据中心部署

二.Consul单机部署

1.安装Consul,本人比较喜欢用systemctl命令所有用官网的方式

yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul

2.查看Consul是否安装成功

consul version

3.创建数据文件夹,修改权限

mkdir /usr/local/consul

cd /usr/local/consul

chmod 777 /usr/local/consul

4.配置Consul

vim /etc/consul.d/consul.hcl

# 数据目录
data_dir = "//usr/local/consul"

# 指定客户端访问的IP,0.0.0.0不限制客户端IP
client_addr = "0.0.0.0"

# 开启UI
ui_config{
  enabled = true
}

# Agent以服务端模式启动(注册中心)
server = true

# 监听所有地址,如果纯在多个网卡必须写死ip,否则可以写0.0.0.0
bind_addr = "0.0.0.0"

# 部署1个server节点
bootstrap_expect=1

5.启动Consul

systemctl start consul

netstat -lntup

# 排查错误日志

journalctl -u consul

#删除日志

rm /run/log/journal/* -rf

systemctl restart systemd-journald

systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

6.访问Consul

http://ip:8500

7.基本命令

#查询集群节点

consul members

#重新加载配置文件

consul reload

#优雅关闭节点

consul leave

#查询所有注册的服务

consul catalog services

#加入集群

consul join 192.168.4.130

#退出集群

consul leave

三.Consul集群部署

1.集群部署环境准备

序号  IP地址 操作系统 主机名
1 192.168.4.131 CentOS 7 host-consul1
2 192.168.4.132 CentOS 7 host-consul2
3 192.168.4.133 CentOS 7 host-consul3
4 192.168.4.134 CentOS 7 host-consul4

#查看集群状态

consul operator raft list-peers

#退出集群

consul operator raft remove-peer -id=192.168.10.16:8500

#查看members状态

consul members

2.主机名配置(所有节点执行)

[root@localhost ~]# hostnamectl set-hostname host-consul1

[root@localhost ~]# hostnamectl set-hostname host-consul2

[root@localhost ~]# hostnamectl set-hostname host-consul3

3.安装Consul(所有节点执行)

yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul

4.查看Consul是否安装成功(所有节点执行)

consul version

5.配置Consul(所有server节点执行)

vi /etc/consul.d/consul.hcl

#数据中心名称
datacenter = "consul-cluster"

#数据目录
data_dir = "/uer/local/consul"

#指定客户端访问的IP,0.0.0.0不限制客户端IP
client_addr = "0.0.0.0"

#开启UI
ui_config{
  enabled = true
}

# Agent以服务端模式启动(注册中心)
server = true

#监听所有地址
bind_addr = "0.0.0.0"

#部署3个server节点,主节点是true,两个副节点为false

bootstrap=false
bootstrap_expect=3

6.启动Consul(所有节点执行)

systemctl start consul

netstat -lntup

7.指定主节点(所有server节点执行)

consul join 192.168.4.131

8.如果想离线安装,文件就得手写了

1) 启动服务文件位置:/usr/lib/systemd/system/consul.service

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

2) 单体配置文件: /etc/consul.d/consul.hcl

data_dir = "/usr/local/consul"

client_addr = "0.0.0.0"

ui_config{
  enabled = true
}

server = true
bind_addr = "0.0.0.0"

bootstrap_expect=1

四.克隆虚拟机方式添加client

1.虚拟机的快照和克隆就不说了,这几主要说要修改的内容

1) ip, mac

可以通过nmtui,也可以通过修改ifcfg-ens33

vi /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.4.134

MACADDR=00:50:56:28:29:AB

2).hostname:可以通过nmtui,

也可通过hostnamectl set-hostname host-consul1

3).uuid

a.查看 cat /sys/class/net/ens33/address

b.创建id

uuidgen

c.vi /etc/sysconfig/network-scripts/ifcfg-ens33

UUID="ab42ff8b-93bf-4958-8858-1318f0f20ae3"

2.更改consol的node-id

1) 创建id

uuidgen

2) 切换到数据路径,替换新的uuid

cd /usr/local/consul
vi node-id
reboot

3.Client端配置文件内容:

#datacenter = "my-dc-1"
node_name = "consul-client"
client_addr = "0.0.0.0"
bind_addr = "0.0.0.0"
data_dir = "/usr/local/consul"
enable_script_checks = true
enable_syslog = true
leave_on_terminate = true
log_level = "INFO"
rejoin_after_leave = true
ui_config{
  enabled = true
}
retry_join = ["192.168.4.131", "192.168.4.132", "192.168.4.133"]
start_join = ["192.168.4.131", "192.168.4.132", "192.168.4.133"]

4.由于之前的快照是已经加了集群的consol节点,这里要脱离一下,停止后仅启动单节点

1) 脱离:consul leave

2) 改node-id,否则会提示重复,consul数据目录下 /usr/local/consul/raft/ 下, 添加 peers.json ,

内容如下:

[
  {
    "id": "1cfaa57e-0676-3008-2423-55eeb7abfc72",
    "address": "10.1.0.1:8300",
    "non_voter": false
  }
]

3) 内容格式可参考同目录的 peer.info , 其中 id 通过查看 data/node-id 获得,

4) address 为本机内网通信地址,  基本不用改

5) non_voter 为是否不参与投票

6) 配置在初次启动完成后, 可以不再需要,重启后会自动删除

5.启动:systemctl start consul

consul集群部署-linux相关推荐

  1. Consul集群部署模式server+client

    Consul是一个服务网格,它提供了一个功能齐全的控制平面,主要特点是:服务发现.健康检查.键值存储.安全服务通信.多数据中心. 在本场 Chat 中,会讲到如下内容:1.Consul核心概念2.Co ...

  2. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

  3. 大数据生态(六)zookeeper集群部署(Linux和Windows[含一键启动脚本])

    目录 前言 1.解压安装Zookeeper到/e3base/zookeeper目录下 2 .创建$E3_INFO_HOME/zookeeper目录 3 .创建数据目录和日志目录 4.配置环境变量 4. ...

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

    一.前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动con ...

  5. SpringCloud Alibaba 之Nacos集群部署-高可用保证

    文章目录 Nacos集群部署 Linux部署 docker部署(参考待验证) Nacos 集群的工作原理 Nacos 集群中 Leader 节点是如何产生的 Nacos 节点间的数据同步过程 官方推荐 ...

  6. Docker - 容器部署 Consul 集群

    目录   准备 Consul 镜像 安装单个 Consul 组装集群 Consul 启动 Consul 和 Web 管理器 Consul 命令简单介绍 Web 管理器 Server 加入集群 Clie ...

  7. Linux集群部署和ipvsadm命令的使用

    在日常的使用中,一台服务器足够胜任很多的工作,但是当很多人同时访问的时候就会显得稍有些无力,这个时候.可以有两种解决的方法,第一种是不断的改善这台服务器的性能,但是总是会有一个上限存在,而且提升的效果 ...

  8. ElasticSearch集群部署【windows+Linux双系统搭建】

    ES集群部署 一.windows部署 二.Linux单节点部署 三.Linux集群部署 一.windows部署 如果已经使用过,删除其中的data和logs文件夹中的内容 新建一个es-cluster ...

  9. Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止

    文章目录 一.环境部署总览 1. 软件版本选型 2. 服务器软件部署总览 二.软件部署手册 2.1. JDK 2.2. kafka 2.3. Kafka Eagle 2.4. mysql 2.5. z ...

最新文章

  1. 【BZOJ】1726 [Usaco2006 Nov]Roadblocks第二短路
  2. asp.net的JSONHelper 类
  3. Jenkins部署Python项目实战
  4. 字符编码解码整合工具
  5. 计算机网络多元化媒体传达,【多媒体技术论文】视觉传达设计多媒体技术的应用(共4007字)...
  6. 阿里巴巴黄贵谈存储新硬件带来数据库的机遇
  7. 2021曾都二中高考成绩查询入口,2021高考-随州设4个考区11个考点·
  8. Python遇到的问题(二)
  9. 使用Xamarin.Forms的企业应用程序模式(电子书)--访问远程数据
  10. 高级应用-路由协议配置
  11. Hive中NULL的含义
  12. CAP、BASE、ACID基本概念
  13. TZOJ 4813 机器翻译(模拟数组头和尾)
  14. 下载配置Gradle
  15. Arduino 各种模块篇 motor shield 电机扩展板(舵机、直流电机、步进电机party)
  16. 一步一步带你训练CTPN
  17. 矩阵取数游戏【题解】
  18. 校园网如何使用IPv6
  19. Meta今年不再招人!小扎还说跳槽越多越好
  20. MATLAB基础编程(004-01)在不同初速度和重力加速度下的的动态抛物运动绘图

热门文章

  1. MySQL分组查找最早(大)或最晚(小)记录
  2. WPF CheckBox自定义样式
  3. 微信小游戏、three.js、真机调试,出现锯齿的解决办法
  4. RabbitMQ自动扩展消费者源码分析
  5. 终端安全管理防护的措施之一
  6. 在智能终端中设备中,信息安全是不得不说的秘密!
  7. 向来缘浅,奈何情深。——《秒速五厘米》
  8. 51单片机入门之七:按键检测,单片机如何检测按键输入
  9. 偶数分解成质数c语言,C++将偶数分解为质数
  10. Excel利用数据分列功能将文字和数字分开