LVS NAT模式负载均衡群集部署

目录

1 群集(集群) cluster

1.1 群集的类型

2 LVS的工作模式及其工作过程

2.1 NAT模式(VS-NAT)

2.2 直接路由模式(VS-DR)

2.3 IP隧道模式(VS-TUN)

3 LVS-NAt 模式配置步骤

3.1 部署共享存储

3.2 配置节点服务器

扫描二维码关注公众号,回复: 16964302 查看本文章

3.3 配置负载调度器

3.3.1 加ens36 网卡并进行相关配置

3.3.2 配置SNAT转发规则

3.3.3 加载LVS内核模块

3.3.4 安装ipvsadm 管理工具

3.3.5 配置负载分配策略

3.4 测试 LVS 群集


1 群集(集群) cluster

集群就是将多台主机作为一个整体,对外提供相同的服务

特点:由多个主机构成,都干同样的一件事,对外界展现为一个整体

场景:高并发,并发量过大时候加服务器的方式就是向外扩展(横向扩展),就是集群

1.1 群集的类型

1)负载均衡群集 LB
提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载的能力
典型代表:软件类:LVS、 Nginx、HAProxy 等  硬件类:F5  绿盟

2)高可用群集 HA
提高系统可靠性,减少中断时间,确保服务的连续性(通常使用N个9来代表可用的指标)
典型代表:Keepalived  heartbeat

3)高性能运输群集 HPC
通过云计算或分布式计算来获取高性能的CPU、内存等资源,来提高整体运算能力

2 LVS的工作模式及其工作过程

LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)VS/DR(路由模式)VS/TUN(隧道模式)

2.1 NAT模式(VS-NAT)

调节器会作为所有以节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,也就是说调节器会承受双向数据流量的负载压力,可能会成为整个集群的性能瓶颈。由于节点服务器都处于内网环境,使用私网IP地址,所以具有一定安全性。

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

  • 优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
  • 缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

2.2 直接路由模式(VS-DR)

DR 直接路由Direct Routing
调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。(与NAT模式的区别)节点服务器与调节器是部署在同一物理网络内,因此不需要建立专用的IP隧道。(与TUN模式的区别)

DR 模式是企业首选的LVS模式。

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

2.3 IP隧道模式(VS-TUN)

TUN IP隧道 IP Tunnel
调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。但是由于节点服务器需要部署在不同位置的公网环境中,需要具有独立的公网IP,调节器与节点服务器是通过专用的IP隧道实现相互通信的。因此IP隧道模式的成本较高、安全性较低,且IP隧道需要额外的封装和解封装,性能会受到一定的影响。

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。

3 LVS-NAt 模式配置步骤

  1. 配置NFS共享存储
  2. 节点服务器安装web服务,注意:默认网关要指向调节器的IP地址,测试的时候关闭连接保持
  3. 调节器服务器要开启IP路由转发功能和设置SNAT等iptables 规则,安装ipvsadm工具,配置虚拟服务器和真实节点服务器相关配置
  4. 客户端测试的时候网关要指向 调节器的IP地址
     

负载调度器:内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1

Web节点服务器1:192.168.30.107

Web节点服务器2:192.168.30.108

NFS服务器:192.168.30.106

客户端:12.0.0.12

3.1 部署共享存储

NFS服务器:192.168.30.106

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

yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service

systemctl enable nfs.service
systemctl enable rpcbind.service

mkdir /opt/cyw /opt/cww
chmod 777 /opt/cyw /opt/cww
echo 'Cao yu wang is a bood boy !' > /opt/cyw/index.html
echo 'FBI open the door !' > /opt/cww/index.html

vim /etc/exports
/usr/share *(ro,sync)
/opt/cyw 192.168.30.0/24(rw,sync)
/opt/cww 192.168.30.0/24(rw,sync)

--发布共享---
exportfs -rv

安装所需软件 nfs、rpcbind并启动

配置静态网页

NFS(Network File System)共享的目录和权限

发布共享

3.2 配置节点服务器

192.168.30.107、192.168.30.108

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

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

yum install nfs-utils rpcbind -y
showmount -e 192.168.80.13

systemctl start rpcbind
systemctl enable rpcbind

--192.168.80.100---
mount.nfs 192.168.80.13:/opt/kgc /var/www/html

vim /etc/fstab
192.168.80.13:/opt/kgc		/var/www/html	nfs		defaults,_netdev	0  0

--192.168.80.101---
mount.nfs 192.168.80.13:/opt/benet /var/www/html
echo 'this is benet web!' > /var/www/html/index.html

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

关闭防火墙及selinux

两台服务器安装httpd服务并开启

安装所需软件 nfs、rpcbind并启动

                                                    ---192.168.30.107---

挂载

                                                     ---192.168.30.108---  

挂载

3.3 配置负载调度器

内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1

3.3.1 加ens36 网卡并进行相关配置

配置ens36

重启并网络联通测试

3.3.2 配置SNAT转发规则

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

或 echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p

iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

3.3.3 加载LVS内核模块

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");

do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;

done

3.3.4 安装ipvsadm 管理工具

ipvsadm 工具选项说明:

选项
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a 表示添加真实服务器(节点服务器)
-d 删除某一个节点
-t 指定 RIP地址及 TCP端口
-m 表示使用 NAT群集模式
-g 表示使用 DR模式
-i 表示使用 TUN模式
-w 设置权重(权重为 0 时表示暂停节点)
-p 60 表示保持长连接60秒(默认关闭连接保持)
-l 列表查看 LVS 虚拟服务器(默认为查看所有)
-n 以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

启动服务前须保存负载分配策略

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

3.3.5 配置负载分配策略

(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

ipvsadm -C     #清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1
ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.108: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 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1     #删除群集中某一节点服务器
ipvsadm -D -t 12.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  重启网络

web1

web2

3.4 测试 LVS 群集

在一台IP为12.0.0.20 的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

猜你喜欢

转载自blog.csdn.net/2302_78835233/article/details/132790199