负载均衡集群

一、负载均衡

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     #非交互式模式测试
相关推荐
一心0921 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上1 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊2 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y3 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程3 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
爬山算法5 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡
你想考研啊5 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks5 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
饥饿的半导体6 小时前
Linux快速入门
linux·运维
还是奇怪9 小时前
Linux - 安全排查 2
linux·运维·安全