lvs负载均衡集群(NAT模式)

lvs负载均衡集群:
lvs负载均衡集群(NAT模式)_第1张图片
lvs负载均衡集群(NAT模式)_第2张图片

1.什么是集群(含义):就是将多台主机作为一个整体,对外提供相同的服务
2.集群使用在哪一个场景:高并发
并发量过大时候加服务器的方式就是向外扩展(横向扩展),就是集群。
lvs负载均衡集群(NAT模式)_第3张图片
3.集群的分类:
可以根据集群所针对的目标差异,分为三种类型:
负载均衡器:减少响应延迟,提供并发处理能力
高可用集群:系统的稳定性,减少服务器中断的时间,减少损失。
(HA 表示高可用–(主要作用于)–>冗余、备份、解决单点故障)
高性能运算集群:高性能运算能力,作为分布式 并发处理。
4.负载均衡集群的架构:
数据流向:用户---->通过----->vrrp----->访问
第一层:负载调度器(代理服务器):通过调度算法,以及RIP(真实ip地址)进行发送。
第二层:节点服务器池:所有服务器用的资源通过。
第三层:共享存储:提供网站,存储资源。
5.负载均衡器的集群的工作模式:
1.地址转换(NAT模式)
调度器作为网关,是访问请求的入口,也是响应访问的出口,在高并发场景当中,负载压力很高,NAT转换可用提高安全性

2.IP隧道模式(TUN模式)
仅是访问请求的入口,响应数据不经过调度器,但是需要大量的公网IP,但是还需要专用的IP隧道,成本太高。数据转发受IP隧道额外的影响。

3.直接路由(DR模式)(使用较多)
仅是访问请求入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中数据进行转发不受影响。
6.关于LVS虚拟服务器
确认是否支持LVS:使用modprobe ip_vs查看
7.LVS负载均衡器调取算法
轮询算法(rr):
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载
加权轮询算法(wrr):
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多,保证性能强的服务器承担更多的访问流量
最少连接(lc):
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
加权最少连接(wlc):
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重, 性能较高的节点将承担更大比例的活动连接负载
LVS中的术语:
lvs负载均衡集群(NAT模式)_第4张图片

lvs负载均衡集群(NAT模式)_第5张图片

lvs负载均衡集群(NAT模式)_第6张图片
lvs负载均衡集群(NAT模式)_第7张图片

创建集群的流程:
lvs负载均衡集群(NAT模式)_第8张图片

lvs组成 作用
组成:
1.lvs是基于内核态的netfilter框架实现的IPVS功能,工作在内核态用户配置VIP等相关信息并且传递到IPVS 就需要用到IPVSadm工具
2.ipvsadm:IPVSadm是lvs用户态的配套工具,它可以实现VIP和RS的增删改查,IPVSadm就是一个类似于iptables工具的地位

作用:
1.主要用于多服务器的负载均衡
2,是一个工作在网络层,可实现高性能,高可用的服务集群技术
3.廉价,可以把许多低性能的服务器组合在一起形成一个超级设备(服务器)
4.易用 配置简单 有多重负载均衡的方式
5.稳定可靠,即使在集群的服务器中,某一台服务无法正常工作,也不会影响整体效果。
6.可扩展性好。

案例LVS—NAT部署实战:
lvs负载均衡集群(NAT模式)_第9张图片

LVS负载调度器:ens33:20.0.0.104 ens37:10.0.0.1(vmnet3)
Web1 节点服务器1:20.0.0.102
Web2 节点服务器2:20.0.0.103
NFS服务器:20.0.0.101
客户端(win10):10.0.0.10 (Vmnet3)

PS:
① win10虚拟机(客户端)网关设置为10.0.0.1
② web服务器 网关设置为 20.0.0.104

1、部署共享存储(NFS服务器:20.0.0.101)

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

yum install -y nfs-utils rpcbind

systemctl start nfs.service 
systemctl start rpcbind.service
systemctl enable nfs.service 
systemctl enable rpcbind.service

mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet

vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 20.0.0.0/24(rw,sync)
/opt/benet 20.0.0.0/24(rw,sync)

#发布共享

exportfs -rv
showmount -e

2、配置节点服务器(后端web服务器)

20.0.0.10220.0.0.103
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

#修改网卡网关为LVS服务器

yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service

yum install -y nfs-utils rpcbind

systemctl start rpcbind.service
systemctl enable rpcbind.service
showmount -e 20.0.0.104

#web1:20.0.0.102

mount.nfs 20.0.0.104:/opt/kgc /var/www/html/

echo 'this is kgc' > /var/www/html/index.html

vim /etc/fstab 
20.0.0.104:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a

#web2:20.0.0.103

mount.nfs 20.0.0.104:/opt/benet /var/www/html/

echo 'this is benet' > /var/www/html/index.html

vim /etc/fstab 
20.0.0.104:/opt/benet /var/www/html nfs defaults,_netdev 0 0

mount -a

######配置负载调度器LVS(ens33:20.0.0.104 ens37:10.0.0.1)

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

------(1)、配置SNAT转发规则-------

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p
或者:echo '1' > /proc/sys/net/ipv4/ip_forward
 
iptables -t nat -F
iptables -F
[root@lvs ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination  


iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 10.0.0.1

nat表:修改数据包中的源、目标IP地址或端口
POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)
PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)
-A: 在规则链的末尾加入新规则
-s: 匹配来源地址IP/MASK.
-o 网卡名称匹配从这块网卡流出的数据
-i 网卡名称匹配从这块网卡流入的数据
-j 控制类型

-------(2)、加载LVS内核模块-------------

modprobe ip_vs   #手动加载ip_vs模块
cat /proc/net/ip_vs    #查看ip_vs版本信息

-------(3)、安装ipvsadm管理工具-------------

yum install -y ipvsadm

#注意:启动服务前必须保存负载分配策略,否则将会报错

ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm
或者
touch /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

------(4)、配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)-------------

ipvsadm -C     #清除原有策略
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 20.0.0.102:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 20.0.0.103:80 -m -w 1

-A	添加虚拟服务器
-s	指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
-a	表示添加真实服务器 (后端节点服务器)
-t	指定 VIP地址及 TCP端口
-m	表示使用 NAT群集模式.
-w	设置权重 (权重为 0 时表示暂停节点)

ipvsadm     #启动策略
ipvsadm -ln    #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm    #保存策略

删除时候使用:

ipvsadm -d -t 10.0.0.1:80 -r 20.0.10.102:80 -m -w 1     #删除群集中某一节点服务器
ipvsadm -D -t 10.0.0.1:80     #删除整个虚拟服务器
systemctl stop ipvsadm     #停止服务(清除策略)
systemctl start ipvsadm    #启动服务(重建规则)
ipvsadm-restore > /etc/sysconfig/ipvsadm      #恢复LVS策略

配置调度器的网关:

web01
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
注释掉DNS,将lns(lb负载调度器)的ip配置成web01的网关
同理web02一致
systemctl restart network  重启网络

测试:

在win10上使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡
PS:刷新间隔时间需要稍长一点

你可能感兴趣的:(lvs,负载均衡,运维)