LVS负载均衡集群

目录

1、什么是集群(含义)

2、集群使用在哪一个场景

3、集群的分类

4、负载均衡器的集群架构

5、负载均衡器的群集的工作模式

1、地址转换(NAT模式)

2、IP隧道(TUN模式)

3、直接路由(DR模式)

6、关于LVS的虚拟服务器

7、LVS的负载均衡器的调度算法

8、LVS组成和作用

1.组成

2.作用

9、案例 LVS-NAT的部署实战


1、什么是集群(含义)

总结:就是将多台主机作为一个整体对外提供相同的服务

由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机。

2、集群使用在哪一个场景

总结:高并发使用

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足均衡及高可用的要求。

3、集群的分类

总结:

1、负载均衡器:减少响应延迟,提供并发处理能力

2、高可用:系统的稳定性,减少服务器中断的时间,减少损失

3、高性能:高性能运算能力 分布式 并发

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

                1、负载均衡集群

                2、高可用集群 (单点故障)

                      HA表示高可用->冗余、备份、解决单点故障 (vrrp永远会在优先级高的设备 上,vrrp会占                  用一个Ip地址,且只会存在于一个设备上。默认是抢占模式)

                3、高性能运算群集

所谓的高性能,其实就是分布式,

4、负载均衡器的集群架构

总结:

数据流向:用户通过vip进行访问,

负载调度器:通过调度算法,以及RIP(就是真实IP地址)发送

节点服务池:所有服务器用的资源通过

共享存储:通过共享存储提供的网站,存储资源

第一层:负载调度器

第二层:服务器池

第三层:共享存储

5、负载均衡器的群集的工作模式

负载均衡群集是目前企业用得最多的群集类型

群集的负载调度技术有三种工作模式:

1、地址转换(NAT模式)

调度作为网关,是访问请求的入口,也许是响应访问的出口,在高并发场景当中负载压力很高,NAT转换可以提高安全性。

2、IP隧道(TUN模式)

仅是请求访问的入口,响应数据不经过调度器。

但是需要大量的公网IP,还需要专用的IP隧道

所以导致成本太高,数据转发受IP隧道的额外影响

3、直接路由(DR模式)

仅是访问请求入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中,数据进行转发不受额外影响。

6、关于LVS的虚拟服务器

确认是否支持LVS:modprobe ip_vs

7、LVS的负载均衡器的调度算法

1、轮询:将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载。

2、加权轮询:根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多,保证性能强的服务器承担更多的访问流量。

3、最少连接:根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

4、加权最少连接:在服务器节点的性能差异较大时,可以为真实服务器自动调整权重,性能较高的节点将承担更大比例的活动连接负载。

8、LVS组成和作用

1.组成

1.LVS基于内核态的netfilter框架来实现的IPVS功能工作在内核态。用户配置VIP等相关信息并且传递到IPVS,就需要用到IPVSadm工具。

2.ipvsadm:IPVSadm是lvs用户态的配套工具,可以实现VIP和RS增删改查。

IPVSadm 就是类似于iptables工具的地位

ipvsadm用法:

ipvsadm

 -A 添加虚拟服务器

-D 删除整个虚拟服务器

-s 指定负载调度算法

-a 表示添加真实服务器(节点服务器)

-d 删除某一个节点

-t 指定VIP地址及TCP端口

-r 指定RIP地址及TCP端口

-m 表示使用NAT群集模式

-g 表示使用DR模式

-i 表示使用TUN模式

-w 设置权重(权重为0时表示暂停节点)

-p 60 表示保持长连接60秒

-l 列表查看LVS虚拟服务器(默认为查看所有)

-n 以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

2.作用

1.主要用于多服务器的负载均衡

2.工作在网络层,可实现高性能,高可用的服务集群技术

3.廉价,可以把许多低性能的服务器组合在一起,形成一个超级服务器。

4.易用,配置简单,有多重负载均衡的方式

5.稳定可靠,即使在集群的服务器中,某台服务器无法正常工作,也不影响整体效果

6.可扩展性好

9、案例 LVS-NAT的部署实战

此实验需要在负载调度器上添加一个虚拟网卡:

 

LVS负载调度器:ens33:192.168.11.12 ens37:10.0.0.1(vmnet3) 注意!!!添加虚拟网卡的时候,注意看实际添加的网卡是多少,有可能是36,要把配置文件中的内容和文件名都要改成添加的虚拟网卡的名字。
Web1 节点服务器1:192.168.11.22
Web2 节点服务器2:192.168.11.23
NFS服务器:192.168.11.13
客户端(win10):10.0.0.12 (Vmnet3)

win10虚拟机(客户端)网关设置为10.0.0.1
web服务器 网关设置为 192.168.11.12

1、部署共享存储(NFS服务器:192.168.11.13)
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

#安装服务并重启服务,enable设置开机自启动
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 192.168.11.0/24(rw,sync)
/opt/benet 192.168.11.0/24(rw,sync)

#发布共享,showmount -e为查看挂载情况
exportfs -rv
showmount -e

2、配置节点服务器(后端服务器)
192.168.11.22、192.168.11.23
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

#修改网卡网关为LVS服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.11.12
#DNS=8.8.8.8

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 192.168.11.13

#web1:192.168.11.22
mount.nfs 192.168.11.13:/opt/kgc /var/www/html/

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

#永久挂载
vim /etc/fstab 
192.168.11.13:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a

#web2:192.168.11.23
mount.nfs 192.168.11.13:/opt/benet /var/www/html/

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

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

mount -a

3、配置负载调度器LVS(ens33:192.168.11.12 ens37:10.0.0.1)
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

在虚拟机设置中,新添加一个网络适配器为VMnet3模式!!!


# (1)配置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
[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.11.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)加载内核模块
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 192.168.11.22:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.11.23: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 192.168.11,22:80 -m -w 1     #删除群集中某一节点服务器
ipvsadm -D -t 10.0.0.1:80     #删除整个虚拟服务器
systemctl stop ipvsadm     #停止服务(清除策略)
systemctl start ipvsadm    #启动服务(重建规则)
ipvsadm-restore > /etc/sysconfig/ipvsadm      #恢复LVS策略

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



 配置新的windows网卡:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/78768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云原生、k8s】Calico网络策略

第四阶段 时 间:2023年8月17日 参加人:全班人员 内 容: Calico网络策略 目录 一、前提配置 二、Calico网络策略基础 1、创建服务 2、启用网络隔离 3、测试网络隔离 4、允许通过网络策略进行访问 三、Calico网络策略进阶 1、创…

vue动态修改audio地址

问题:点击后替换url地址,实现了,但是播放器依旧没有反应。 解决:vue中动态替换只是替换了地址,并没有告诉audio标签是否要执行,执行什么操作。要load后才能让它知道,是在喊他,他需求…

STM32--TIM定时器(2)

文章目录 输出比较PWM输出比较通道参数计算舵机简介直流电机简介TB6612 PWM基本结构PWM驱动呼吸灯PWM驱动舵机PWM控制电机 输出比较 输出比较,简称OC(Output Compare)。 输出比较的原理是,当定时器计数值与比较值相等或者满足某种…

飞凌嵌入式与您相约艾睿电子技术解决方案展

艾睿电子公司将在深圳主办年度“技术解决方案展”,2023 年展示会将以“启航未来,携手共进”为主题,汇聚百家电子/半导体大厂、制造商、供应商、方案公司及创科公司,展示最前沿的产品和领先技术解决方案,如何能驱动人、…

微服务-Nacos(配置管理)

配置更改热更新 在Nacos中添加配置信息&#xff1a; 在弹出表单中填写配置信息&#xff1a; 配置获取的步骤如下&#xff1a; 1.引入Nacos的配置管理客户端依赖&#xff08;A、B服务&#xff09;&#xff1a; <!--nacos的配置管理依赖--><dependency><groupId&…

render和h函数的使用

// 如果没有配置项&#xff0c;则可以省略不写 {}h("div", [h(h-tooltip, // 在tooltip中进行改造// ----- h-tooltip 的配置项 -----Start{props: {placement: "top-start",// content: 提示内容,transfer: true},style: {overflow: hidden,text-overflow…

阿里巴巴面试高频题:JVM内存模型通俗解释!

大家好&#xff0c;我是你们的小米&#xff0c;今天我要和大家一起来探讨一个热门话题——JVM内存模型&#xff01;作为计算机科班出身的小米&#xff0c;一直对技术充满热情&#xff0c;喜欢和大家分享各种有趣的知识。最近在准备阿里巴巴的面试时&#xff0c;遇到了一个非常有…

RestTemplate

RestTemplate介绍 RestTemplate是Spring提供的用于访问RESTful服务的客户端&#xff0c;RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认依赖JDK提供http连接的能力&#xff08;HttpURLConnection&#xff09;&#xff0c;…

docker-php扩展

生成扩展骨架 环境&#xff1a;docker-compose、php74 1.本地要有一份 php-src git clone https://github.com/php/php-src.git cd php-src git checkout PHP-7.4.52.\www\php-src\ext可以看到有一个 ext_skel.php 文件 3.通过ext_skel.php脚本创建了一个hello扩展&#xf…

SpringBoot复习:(51)默认情况下DataSource是怎么创建出来的,是什么类型的?

DataSource是通过DataSourceAutoConfiguration创建的&#xff0c;这个类代码如下&#xff1a; 可以看到DataSourceAutoConfiguration有个静态内部类PooledDataSourceConfiguration,在这个类上有个Import注解&#xff0c;导入了DataSourceConfiguration.Hikari这个类&#xff0…

数据结构——链表详解

链表 文章目录 链表前言认识链表单链表结构图带头单循环链表结构图双向循环链表结构图带头双向循环链表结构图 链表特点 链表实现(带头双向循环链表实现)链表结构体(1) 新建头节点(2) 建立新节点(3)尾部插入节点(4)删除节点(5)头部插入节点(6) 头删节点(7) 寻找节点(8) pos位置…

Unknown tree updater grow_gpu_histb报错

报错显示&#xff1a;由于xgboost的问题而报错 报错显示&#xff1a;Unknown tree updater grow_gpu_histb 原因是 XGBoost 在尝试使用 GPU 加速时无法识别指定的树更新器。也就是当前xgboost版本中没有grow_gpu_histb组件&#xff0c;所以需要安装正确的版本。 经搜索&#…

银河麒麟服务器v10 sp1 .Net6.0 上传文件错误

上一篇&#xff1a;银河麒麟服务器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客 .NET 6之前&#xff0c;在Linux服务器上安装 libgdiplus 即可解决&#xff0c;libgdiplus是System.Drawing.Common原生端跨平台实现的主要提供者&#xff0c;是开源mono项目。地址…

ios swift5 collectionView 瀑布流(两列)

文章目录 1.瀑布流1.1 demo地址1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和文字的高度 1.瀑布流 1.1 demo地址 CollectionViewWaterfallLayout - github 1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和…

问道管理:机器人概念走势活跃,新时达涨停,拓斯达、丰立智能等大涨

机器人概念17日盘中走势活跃&#xff0c;到发稿&#xff0c;拓斯达大涨18%&#xff0c;昊志机电涨近16%&#xff0c;丰立智能涨超13%&#xff0c;步科股份、优德精细涨超10%&#xff0c;新时达涨停&#xff0c;天玑科技、兆龙互联、中大力德涨逾9%。 消息面上&#xff0c;8月16…

设计模式

本文主要介绍设计模式的主要设计原则和常用设计模式。 一、UML画图 1.类图 2.时序图 二、设计模式原则 1.单一职责原则 就是一个方法、一个类只做一件事&#xff1b; 2.开闭原则 就是软件的设计应该对拓展开放&#xff0c;对修改关闭&#xff0c;这在java中体现最明显的就…

spring详解

spring是于2003年兴起的一款轻量级的&#xff0c;非侵入式的IOC和AOP的一站式的java开发框架&#xff0c;为简化企业级应用开发而生。 轻量级的&#xff1a;指的是spring核心功能的jar包不大。 非侵入式的&#xff1a;业务代码不需要继承或实现spring中任何的类或接口 IOC&…

Spring5学习笔记—AOP编程

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

国企的大数据岗位方向的分析

现如今大数据已无所不在&#xff0c;并且正被越来越广泛的被应用到历史、政治、科学、经济、商业甚至渗透到我们生活的方方面面中&#xff0c;获取的渠道也越来越便利。 今天我们就来聊一聊“大屏应用”&#xff0c;说到大屏就一定要聊到数据可视化&#xff0c;现如今&#xf…

eclipse 导入项目js报错问题

eclipse 导入项目后会出现项目中的js文件报错&#xff08;红叉&#xff09;&#xff0c;如下图所示&#xff0c;有时候报错的文件很多&#xff0c;需要集中处理。 解决办法&#xff1a; 右键项目名称》Properties》MyEclipse》JavaScript》Include Path&#xff0c;在右侧选择“…