consul集群部署-linux
目录
一.前言
二.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相关推荐
- Consul集群部署模式server+client
Consul是一个服务网格,它提供了一个功能齐全的控制平面,主要特点是:服务发现.健康检查.键值存储.安全服务通信.多数据中心. 在本场 Chat 中,会讲到如下内容:1.Consul核心概念2.Co ...
- Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署
1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...
- 大数据生态(六)zookeeper集群部署(Linux和Windows[含一键启动脚本])
目录 前言 1.解压安装Zookeeper到/e3base/zookeeper目录下 2 .创建$E3_INFO_HOME/zookeeper目录 3 .创建数据目录和日志目录 4.配置环境变量 4. ...
- 实战中的asp.net core结合Consul集群Docker实现服务治理
一.前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动con ...
- SpringCloud Alibaba 之Nacos集群部署-高可用保证
文章目录 Nacos集群部署 Linux部署 docker部署(参考待验证) Nacos 集群的工作原理 Nacos 集群中 Leader 节点是如何产生的 Nacos 节点间的数据同步过程 官方推荐 ...
- Docker - 容器部署 Consul 集群
目录 准备 Consul 镜像 安装单个 Consul 组装集群 Consul 启动 Consul 和 Web 管理器 Consul 命令简单介绍 Web 管理器 Server 加入集群 Clie ...
- Linux集群部署和ipvsadm命令的使用
在日常的使用中,一台服务器足够胜任很多的工作,但是当很多人同时访问的时候就会显得稍有些无力,这个时候.可以有两种解决的方法,第一种是不断的改善这台服务器的性能,但是总是会有一个上限存在,而且提升的效果 ...
- ElasticSearch集群部署【windows+Linux双系统搭建】
ES集群部署 一.windows部署 二.Linux单节点部署 三.Linux集群部署 一.windows部署 如果已经使用过,删除其中的data和logs文件夹中的内容 新建一个es-cluster ...
- Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止
文章目录 一.环境部署总览 1. 软件版本选型 2. 服务器软件部署总览 二.软件部署手册 2.1. JDK 2.2. kafka 2.3. Kafka Eagle 2.4. mysql 2.5. z ...
最新文章
- 【BZOJ】1726 [Usaco2006 Nov]Roadblocks第二短路
- asp.net的JSONHelper 类
- Jenkins部署Python项目实战
- 字符编码解码整合工具
- 计算机网络多元化媒体传达,【多媒体技术论文】视觉传达设计多媒体技术的应用(共4007字)...
- 阿里巴巴黄贵谈存储新硬件带来数据库的机遇
- 2021曾都二中高考成绩查询入口,2021高考-随州设4个考区11个考点·
- Python遇到的问题(二)
- 使用Xamarin.Forms的企业应用程序模式(电子书)--访问远程数据
- 高级应用-路由协议配置
- Hive中NULL的含义
- CAP、BASE、ACID基本概念
- TZOJ 4813 机器翻译(模拟数组头和尾)
- 下载配置Gradle
- Arduino 各种模块篇 motor shield 电机扩展板(舵机、直流电机、步进电机party)
- 一步一步带你训练CTPN
- 矩阵取数游戏【题解】
- 校园网如何使用IPv6
- Meta今年不再招人!小扎还说跳槽越多越好
- MATLAB基础编程(004-01)在不同初速度和重力加速度下的的动态抛物运动绘图