负载均衡集群

一、负载均衡

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     #非交互式模式测试
相关推荐
-梅15 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·自动化·github
syntaxsage15 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo15 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
corey9315 小时前
Linux 学习 - 第十四周作业
linux·运维·学习
李纲明16 小时前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
志栋智能1 天前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡1 天前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery1 天前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB1 天前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧1 天前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器