负载均衡集群

一、负载均衡

1.负载均衡分类

四层负载均衡

复制代码
基于IP+端口的负载均衡,实现四层负载均衡的软件有F5(硬件负载均衡器,功能很好,但成本很高),``lvs(重量级的四层负载软件),nginx(轻量级的四层负载软件,带缓存功能,正则表达式较灵活),haproxy(模拟四层转发,较灵活)

七层负载均衡

复制代码
基于虚拟的URL或主机IP的负载均衡,负载均衡设备在七层负载中,更类似于一个代理服务器,负载均衡和前端的客户端以及后端的服务器会分别建立连接

2.区别

3.总结

从上面的对比看来四层负载与七层负载最大的区别就是效率与功能的区别。四层负载架构设计比较简单,无需解析具体的消息内容,在网络吞吐量及处理能力上会相对比较高,而七层负载均衡的优势则体现在功能多,控制灵活强大。在具体业务架构设计时,使用七层负载或者四层负载还得根据具体的情况综合考虑。

二、LVS实现四层负载均衡项目实战

1.LVS优势和不足

优势:

1.高并发连接

2.稳定性强

3.成本低廉

4.配置简单

5.支持多种算法

6.支持多种工作模型
不足:

工作在4层,不支持7层规则修改,不适合小规模应用

2.专业术语

复制代码
VS						#虚拟服务
Director, Balancer         #负载均衡器、分布器
RS       			#后端请求处理服务器
CIP           #客户端IP
VIP           #负载均衡虚拟IP
DIP           #负载均衡器IP
RIP           #后端请求处理服务器IP

3.LVS负载均衡工作模式

1.NAT模式: 进站和出战的数据流量经过负载均衡器(修改的是IP地址,利用三层网络层来传输)

2.DR直接路由模式: 只有进站的数据流量经过负载均衡器(修改的是mac地址,是通过二层数据链路层来传输)

3.TUN隧道模式: 只有进站的数据流量经过分发器,但是服务器要支持隧道协议

4.LVS ipvsadm命令的使用

复制代码
yum -y install ipvsadm     #安装lvs管理软件
-A     #在服务器列表中新添加一条新的虚拟服务器记录
-a     #在服务器表中添加一条新的真实主机记录
-t     #说明虚拟服务器提供tcp服务
-u     #说明虚拟服务器提供upd服务
-r     #只是服务器地址
-m     #指定LVS工作模式为NAT模式
-w     #真实服务器的权值
-g     #指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-s     #使用的调度算法,默认调度算法是 wlc
-C     #清除内核虚拟服务器表中的所有记录
-S     #保存虚拟服务器规则到标准输出,输出为-R 选项可读的格式
-d     #删除一条虚拟服务器记录中的某条真实服务器记录
-L     #显示内核虚拟服务器表
-n     #以数字形式输出地址和端口号

5.实战项目(LVS/DR模式下负载均衡)

在实验之前我们要关闭防火墙和selinux

Director分发器配置

复制代码
#配置VIP
ip addr add dev ens33 192.168.91.10/32  #设置VIP
yum -y install ipvsadm
service ipvsadm start     #启动
注意:启动如果报错: /bin/bash: /etc/sysconfig/ipvsadm: 没有那个文件或目录,需要手动生成文件
ipvsadm --save > /etc/sysconfig/ipvsadm
注意:为什么RS上lo配置的VIP掩码为32位?
这是由于lo设备的特殊性导致, 如果lo绑定VIP/24,则该设备会响应该网段所有IP(192.168.246.0-254)的请求,而不是只响应192.168.246.160这一个地址。,就算是不设置为32也是可以的,只不过会影响访问
如果添加ip错了,删除命令如下:
#ip addr del 192.168.246.193 dev ens33

#定义LVS分发策略
ipvsadm -C  #清除内核虚拟服务器表中的所有记录。
ipvsadm -A -t 192.168.91.10:80 -s rr 
ipvsadm -a -t 192.168.91.10:80 -r 192.168.91.150 -g
ipvsadm -a -t 192.168.91.10:80 -r 192.168.91.149 -g
ipvsadm -S > /etc/sysconfig/ipvsadm

所有的RS配置

复制代码
yum install -y nginx
ip addr add dev lo 192.168.246.160/32   #在lo接口上绑定VIP
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore  #忽略arp广播
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce #匹配精确ip地址回包
systemctl start nginx && systemctl enable  nginx 

配置完成后我们就有可以进行测试

复制代码
elinks -dump http://192.168.91.10     #非交互式模式测试
相关推荐
Elastic 中国社区官方博客5 小时前
使用 Elastic Cloud Serverless 扩展批量索引
大数据·运维·数据库·elasticsearch·搜索引擎·云原生·serverless
十月南城5 小时前
Spring Cloud生态地图——注册、配置、网关、负载均衡与可观测的组合拳
spring·spring cloud·负载均衡
超龄超能程序猿6 小时前
Docker GPU插件(NVIDIA Container Toolkit)安装
运维·docker·容器
2501_906150566 小时前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
岳来7 小时前
docker 从 Path 值看容器启动命令
运维·docker·容器
RisunJan7 小时前
Linux命令-ifconfig命令(配置和显示网络接口的信息)
linux·运维·服务器
杭州泽沃电子科技有限公司7 小时前
面对风霜雨雪雷电:看在线监测如何为架空线路筑牢安全网
运维·人工智能·在线监测·智能监测
lbb 小魔仙8 小时前
【Linux】100 天 Linux 入门:从命令行到 Shell 脚本,告别“光标恐惧”
linux·运维·服务器
早川9199 小时前
Linux系统
linux·运维·服务器
iFlow_AI9 小时前
iFlow CLI + ACK MCP Server:让 ACK 容器运维进入对话时代
运维·ack·iflow·iflow cli