当前位置:网站首页>LVS+Keepalived群集
LVS+Keepalived群集
2022-08-04 18:08:00 【世上无难事754】
LVS+Keepalived群集
集群要满足的三个特点:
1、负载均衡
2、健康检查
3、故障切换
附加:zabbix监控
监控每台机器的服务护着状态
Keepalived实现原理剖析
Keepalived采用VRRP热备份协议
实现Linux服务器的多机热备功能
是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
对于节点服务器,健康检查如果发现故障的节点就会将其隔离或者剔除集群,待其恢复后再重新加入到集群当中
对于负载均衡器健康检查会定时检查主机的状态(务的状态),如果故障就自动切换到备机上:待主机恢复后再重新让主机去承载业务
VRRP会把多台路由器组成一个虚拟路由器的组vrid,vrrp会生成一个虚拟路由器(包含了虚拟IP和虚拟MAC,局域网内的用户不关心哪一个是备,他们只用虚拟路由器的虚拟IP作为他们的网关
实际上虚拟IP是承载在master路由器,也就是实际的数据包是通过master进行转发,master backup是通过优先级来决定哪个是master,优先级最大的那台就是master
backup只用来监听master定时发来的vrrp报文,如果超时未收到master发来的vrrp报文backup就会抢占master地位,虚拟IP也会一起漂移到backup上
VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案
由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务每个热备组同时只有一台主路由器提供服务,其他路由器处于冗余状态当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟P地址,继续提供服务
Keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块,分别是core、check和vrrpo
●core模块:为keepalivedl的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
●vrrp模块:是来实现VRRP协议的。
●check模块:负责健康检查,常见的方式有端口检查及URL检查。
实验:
主DR 服务器:192.168.35.10
备DR 服务器:192.168.35.6
Web 服务器1:192.168.59.7
Web 服务器2:192.168.59.8
1.配置负载调度器(主、备相同) (192.168.35.10、192.168.35.6)
systemctl stop firewalld.service
setenforce 0
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
(1)配置keeplived(主、备DR 服务器上都要设置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs { #定义全局参数
--10行--修改,邮件服务指向本地
smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
#vrrp_strict
}
vrrp_instance VI_1 { #定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
state MASTER
--21行--修改,指定承载vip地址的物理接口
interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致
virtual_router_id 10
#nopreempt #如果设置非抢占模式,两个节点state必须为bakcup,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
priority 100
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
--27行--修改,指定验证密码,主备服务器保持一致
auth_pass abc123
}
virtual_ipaddress { #指定群集vip地址
192.168.35.180
}
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.35.180 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
lb_kind DR
persistence_timeout 50 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
real_server 192.168.35.7 80 {
weight 1 #节点的权重
--45行--删除,添加以下健康检查方式
TCP_CHECK {
connect_port 80 #添加检查的目标端口
connect_timeout 3 #添加连接超时(秒)
nb_get_retry 3 #添加重试次数
delay_before_retry 3 #添加重试间隔
}
}
real_server 192.168.35.8 80 { #添加第二个 Web节点的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
##删除后面多余的配置##
}
systemctl start keepalived
ip addr #查看虚拟网卡vip
#调整proce响应参数,关闭Linux内核的重定向参数响应
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
#刷新一下
sysctl -p
(2)启动 ipvsadm 服务
--192.168.35.10---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C ##清空规则
ipvsadm -A -t 192.168.35.180:80 -s rr
ipvsadm -a -t 192.168.35.180:80 -r 192.168.35.7:80 -g
ipvsadm -a -t 192.168.35.180:80 -r 192.168.35.8:80 -g
ipvsadm -ln
#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived
--192.168.35.6---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -ln
1. #关闭防火墙
systemctl stop firewalld
setenforce 0
2. #安装并开启httpd服务
yum -y install httpd
systemctl start httpd
3. #配置站点文件
vim /var/www/html/index.html
this is yxp web!
4. #配置虚拟vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.35.180
NETMASK=255.255.255.255
5. #重启网络服务,开启虚拟网卡
systemctl restart network
ifup lo:0
ifconfig lo:0
6. #设置路由
route add -host 192.168.35.180 dev lo:0
route -n
7. #调整 proc 响应参数
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
8. #刷新proc参数
sysctl -p
3.测试验证
在客户端访问 http://192.168.35.180/
t.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
- #刷新proc参数
sysctl -p
3.测试验证
在客户端访问 http://192.168.35.180/
![image-20220802200947146](https://img-blog.csdnimg.cn/img_convert/614a6ace74c8b68e58c0f077f2b85308.png)
边栏推荐
猜你喜欢
A group of friends asked for help, but the needs that were not solved in a week were solved in 3 minutes?
基于层次分析法的“内卷”指数分析
工业元宇宙对工业带来的改变
"Involution" Index Analysis Based on AHP
After EasyCVR is locally connected to the national standard device to map the public network, the local device cannot play and cascade the solution
Matlab画图1
【web自动化测试】Playwright快速入门,5分钟上手
智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
【无标题】
SQL优化最全总结 - MySQL(2022最新版)
随机推荐
Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺一种修饰性PEG
clickhouse 上下线表
力扣学习---0804
企业即时通讯软件有哪些功能?对企业有什么帮助?
关于大学生内卷的文献综述
Go 言 Go 语,一文看懂 Go 语言文件操作
Flink / Scala - 使用 RedisSink 存储数据
DMPE-PEG-Mal,二肉豆蔻酰磷脂酰乙醇胺-聚乙二醇-马来酰亚胺简述
数据集成:holo数据同步至redis。redis必须是集群模式?
使用bash语句,清空aaa文件夹下的所有文件
YOLOv7-Pose尝鲜,基于YOLOv7的关键点模型测评
如何让 JS 代码不可断点
怎么招聘程序员
SQL优化最全总结 - MySQL(2022最新版)
CAS:385437-57-0,DSPE-PEG-Biotin,生物活性分子磷脂-聚乙二醇-生物素
智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
dotnet core 输出调试信息到 DebugView 软件
如何模拟后台API调用场景,很细!
DOM Clobbering的原理及应用
Investigation and Research Based on the Involution Behavior of College Students