一、LVS 集群部署
1、LVS 集群工作结构图
2、LVS的负载调度算法
1、轮询(rr,RoundRobin)
2、加权轮询(wrr,Weighted RoundRobin)
3、最少连接(lc, LeastConnections)
4、加权最少连接(wlc,WeightedLeastConnections)
5、source hashing源地址hash(sh
)
3、LVS优点
1.抗负载能力强
2.配置性低
3.工作稳定
4.无流量
5.lvs基本上能支持所有应用
4、LVS工作模式
LVS有三种工作模式:NAT,DR,TUN,DR是三种工作模式中性能最高的,TUN次之。
1.NAT(NetworkAddress Translation)即网络地址映射模式
2.DR(DirectRouting)即直接路由模式
3.TUN(IP Tunneling)即IP隧道模式
5、LVS-NAT 模式工作原理
1.客户端访问VIP1的网站
CIP 客户端的IP
VIP 是域名解析的IP, 是集群对外的公网IP
DIP 用来和后端服务器进行数据交互的IP, 请求报文转发给后端服务器从此口出去
RIP 真实服务器的IP
2.调度器使用NAT进行地址转换
3.真实服务器返回处理结果
4.配置LVS-NAT
1.项目拓扑
2.机器部署
3.环境准备
3台机器全部关闭防火墙,做静态解析,做免密登录
node2、node3上安装httpd服务
配置真实服务器
node2、node3上安装httpd服务
[root@node2 ~]# yum install -y httpd
[root@node2 ~]# systemctl start httpd
[root@node2 ~]# systemctl enable httpd
[root@node2 ~]# systemctl status httpd
[root@node3 ~]# yum install -y httpd
[root@node3 ~]# systemctl start httpd
[root@node3 ~]# systemctl enable httpd
[root@node3 ~]# systemctl status httpd
node2、node3上生成测试网页
[root@node2 ~]# echo ‘Node2:192.168.0.99 server is serving you!!!’ >
/var/www/html/index.html
[root@node3 ~]# echo ‘Node3:192.168.0.111 server is serving you!!!’ >
/var/www/html/index.html
node2、node3上修改网关
[root@node2 ~]# sed -i “s/192.168.0.2/192.168.0.88/g”
/etc/sysconfig/network-scripts/ifcfg-ens32
[root@node3 ~]# sed -i “s/192.168.0.2/192.168.0.88/g”
/etc/sysconfig/network-scripts/ifcfg-ens32
node2、node3上做访问测试
[root@node2 ~]# curl 192.168.0.99
Node2:192.168.0.99 server is serving you!!!
[root@node2~]# curl 192.168.0.111
Node3:192.168.0.111server is serving you!!!
[root@node3 ~]# curl192.168.0.111
Node3:192.168.0.111 server is serving you!!!
[root@node3 ~]# curl192.168.0.99
Node2:192.168.0.99 server is serving you!!!
node1上做访问测试
[root@node1 ~]# curl 10.20.5.88
Node3:192.168.0.111 server is serving you!!!
[root@node1 ~]# curl 10.20.5.88
Node2:192.168.0.99 server is serving you!!!
Windows端访问测试
Windows访问测试
4.配置负载均衡器
a.node1添加一张网卡
第2张网卡选择自定义模式
设置VMnet1属性
禁用并重启
node1:修改第2张网卡配置文件
[root@node1 ~]# nmcli conn
[root@node1 ~]# cd/etc/sysconfig/network-scripts/
[root@node1 network-scripts]# cp ifcfg-ens32 ifcfg-ens34
[root@node1 network-scripts]# vim ifcfg-ens34
node1:重启网卡,查看网卡信息
[root@node1 ~]# systemctl restart network
[root@node1 ~]# ip a
b.node1打开路由转发功能
[root@node1 ~]# echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
[root@node1 ~]# sysctl -p
net.ipv4.ip_forward = 1
c.加载LVS内核模块
[root@node1 ~]# modprobe ip_vs
[root@node1 ~]# lsmod | grep ip_vs
[root@node1 ~]# cat /proc/net/ip_vs
node1做静态解析
[root@node1 ~]# vim /etc/hosts
[root@node1 ~]# cat /etc/hosts
d.安装LVS管理工具: ipvsadm
[root@node1 ~]# yum install -y ipvsadm
[root@node1 ~]# systemctl enable ipvsadm
[root@node1 ~]# ipvsadm-C #清除内核虚拟服务器表中的所有记录
[root@node1 ~]# ipvsadm -A -t 10.20.5.88:80 -s rr #创建虚拟服务器
[root@node1 ~]# ipvsadm -a -t 10.20.5.88:80 -r 192.168.0.99:80 -m
[root@node1 ~]# ipvsadm -a -t 10.20.5.88:80 -r 192.168.0.111:80 -m
查看配置
[root@node1 ~]# ipvsadm -Ln
保存配置或规则
[root@node1 ~]# ipvsadm –save > /etc/sysconfig/ipvsadm
[root@node1 ~]# cat /etc/sysconfig/ipvsadm
二、测试LVS集群
1、crul命令访问
[root@node1 ~]# curl 10.20.5.88
Node2:192.168.0.99 server is serving you!!!
[root@node1 ~]# curl 10.20.5.88
Node3:192.168.0.111 server is serving you!!!
[root@node1 ~]# curl 10.20.5.88
Node2:192.168.0.99 server is serving you!!!
[root@node1 ~]# curl 10.20.5.88
Node3:192.168.0.111 server is serving you!!!
查看客户端连接分发器和real server的情况
[root@node1 ~]# ipvsadm -Lnc
2、Windows端访问测试
3、查看分发情况
[root@node1 ~]# ipvsadm -Ln –stats
4、查看速率
[root@node1 ~]# ipvsadm -Ln –rate
5、清空当前连接数量
[root@node1 ~]# ipvsadm -Z
[root@node1 ~]# ipvsadm -Ln –stats
删除服务器节点
[root@node1 ~]# ipvsadm -d -t 10.20.5.88:80 -r 192.168.0.111:80
[root@node1 ~]# ipvsadm -Ln
删除整个虚拟服务器
[root@node1 ~]# ipvsadm -D -t 10.20.5.88:80
[root@node1 ~]# ipvsadm -Ln