最简单!!!搭建lvs负载均衡两种方式

一,概念

1,根据群集所针对的目标差异,可分为三种类型

(1)负载均衡群集
(2)高可用群集
(3)高性能运算群集

2,负载均衡群集(Load Balance Cluster)

以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法

3, 高可用群集(High Availability Cluster)

以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式

4, 高性能运算群集(High Performance Computer Cluster)

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能运算群集的高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力

{1} 负载均衡集群搭建

群集的负载调度技术有三种工作模式
地址转换
IP隧道
直接路由

《1》地址转换(Network Address Translation)

简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

最简单!!!搭建lvs负载均衡两种方式_第1张图片

《2》IP隧道(IP Tunnel)

简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信

最简单!!!搭建lvs负载均衡两种方式_第2张图片

《3》直接路由(Direct Routing)

简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

最简单!!!搭建lvs负载均衡两种方式_第3张图片

二, 实验

(1)NAT模式

准备环境
一台调度器:配置双网卡 VM1:192.168.100.41 桥接网卡:10.0.2.73
两台WEB服务器集群池:
内网:192.168.131.130 外网192.168.211.201 调度服务器
192.168.131.128 wed服务器
这边的网关必须指向192.168.100.42这个地址
一台windos10测试机

modprobe ip_vs    //加载ip_vs模块

cat /proc/net/ip_vs  //查看ip_vs 信息

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

翻译:

IP虚拟服务器版本1.2.1(大小=4096)

端口调度器标志

—> RemoteAddress:端口转发权重ActiveConn InActConn

yum install -y ipvsadm //安装ipvsadm 管理工具

[root@localhost ~]# ipvsadm -v  //查看版本
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)

ipvsadm -A -t 192.168.211.201:80 -s rr  // 创建虚拟服务器

对于负载均衡调度器来说,VIP 必须是本机实际已启用的IP地址,若群集的VIP地址为192.168.211.201,针对80 端口提供分流服务,使用轮询的调度算法

注:-A 表示添加虚拟服务

​ -t用来指定VIP地址及tcp端口,

​ -s用来指定负载调度算法{(轮询:rr),(加权轮询:wrr),(最少连接:lc),(加权最少连接:wlc).

ipvsadm -a -t 192.168.211.201:80 -r 192.168.131.128:80 -m -w 1 

ipvsadm -ln //查看添加的节点

默认是80端口

上述输出结果,FORWARD列下Masq 对应Masquerade (地址伪装),表示采用的群集模式为NAT; 如果是Route,则表示采用的群集模式为DR。

删除服务节点

ipvsadm -d -r192.168.211.135:80 -t 192.168.211.201:80

需要删除某一个节点时,使用选项-d

需要删除整个虚拟服务器时,使用选项-D

保存负载分配策略

使用 导入/导出 工具 ipvsadm-restore / ipvsadm-save

[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost ~]# cat /etc/sysconfig/ipvsadm

-A -t www.b.com:http -s rr
-a -t www.b.com:http -r 192.168.131.128:http -m -w 1

配置负载调度器

(1)配置SNAT转发规则

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p         //*刷新一下*

到wed服务器中部署http服务

浏览器访问测试

最简单!!!搭建lvs负载均衡两种方式_第4张图片

(2)搭建DR模式

一,准备环境

主机 系统 ip地址 服务
wed服务器1 centos7 外:192.168.211.10 内:192.168.131.10 http
wed服务器2 centos7 外:192.168.211.11 内:192.168.131.11 nginx
调度器 centos7 外:192.168.211.12 内:192.168.131.12
备用调度器 centos7 外:192.168.211.13 内:192.168.131.13 nfs
测试机 windos10

安装 yum -y install net-tools 使用netstat 查看端口

配置wed服务1

安装http

yum install -y httpd

配置wed服务2

安装 nginx

解压

tar -zxf nginx-1.18.0.tar.gz -C /usr/src/

cd /usr/src/nginx-1.18.0/

配置:编译:安装

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

备用调度器(这里为了节约虚拟机我把nfs服务放在这里)

搭建nfs服务

rpm -qa nfs-utils rpcbind //查询是否安装

yum install nfs-utils rpcbind //安装nfs(两个软件)

systemctl start rpcbind && systemctl start nfs //启动(注意按顺序)

vim /etc/exports //进入文件指定共享目录

/home/nfs_wed 192.168.131.0/24(rw,sync,no_root_squash)

保存退出

exportfs -a //加载文件

showmount -e //查看共享目录

注:关闭防火墙

cd /home/nfs_wed/

vim index.html

测试

------

天天向上

每天进步一点点

hahhahahahha

wed服务器1

挂载nfs共享目录

yum install -y rpcbind nfs-utils //下载rpcbind(必须)
systemctl restart rpcbind //开启
mount 192.168.131.13:/home/nfs_wed /var/www/html/ //挂载
df //查看挂载情况

wed服务器2

挂载nfs共享目录

(方法一样,只有挂载目录不一样,这里就不解释了)

yum install -y rpcbind nfs-utils

systemctl restart rpcbind
mount 192.168.131.13:/home/nfs_wed /usr/local/nginx/html/
df

查看效果

wed服务1

http要关闭 setenforce 0 (不然会失败)

最简单!!!搭建lvs负载均衡两种方式_第5张图片

最简单!!!搭建lvs负载均衡两种方式_第6张图片

注::nginx会乱码是正常的

以上完成才往下面做

配置lvs 的DR模式

配置调度器

yum install -y ipvsadm //安装管理工具

配置虚拟接口地址(vip)

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0
UUID=7b353156-27b0-455c-a01c-8cbcb5f18e41
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.211.20 //是你的vip地址
NETMASK=255.255.255.0 //这个以后的都不要

ifup ens33:0 //开启
ifconfig ens33:0 //查看与自己配置是否匹配

调整/proc 响应参数

对于DR群集来说,由于lvs负载调度器和各节点需要公用一个vip地址,需要修改linux内核的重定向参数不然不知道那台机器响应

vim /etc/sysctl.conf

//添加到末尾

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p //刷新一下

配置负载均衡分配策略

modprobe ip_vs //加载模块

ipvsadm -A -t 192.168.211.20:80 -s rr //生成虚拟服务器

编写策略

ipvsadm -a -t 192.168.211.20:80 -r 192.168.211.10 -g -w 1
ipvsadm -a -t 192.168.211.20:80 -r 192.168.211.11 -g -w 1

保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl restart ipvsadm //重启ipvsadm

配置节点服务器

wed服务1

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

修改

DEVICE=lo:0
IPADDR=192.168.211.20
NETMASK=255.255.255.255

ONBOOT=yes

ifup lo:0 //开启
ifconfig lo:0 //查看与自己配置是否匹配
route add -host 192.168.211.20 dev lo:0 //添加一条路由

调整/proc 响应参数

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

sysctl -p

wed服务2

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

修改

DEVICE=lo:0
IPADDR=192.168.211.20
NETMASK=255.255.255.255

ONBOOT=yes

ifup lo:0 //开启
ifconfig lo:0 //查看与自己配置是否匹配
route add -host 192.168.211.20 dev lo:0 //添加一条路由

调整/proc 响应参数

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

sysctl -p

测试(使用两个浏览器)

注:多刷几遍可能会有缓存

最简单!!!搭建lvs负载均衡两种方式_第7张图片

最简单!!!搭建lvs负载均衡两种方式_第8张图片

命令测试

最简单!!!搭建lvs负载均衡两种方式_第9张图片

你可能感兴趣的:(liunx,linux)