LVS 负载均衡集群的DR模式配置

news2025/1/13 13:35:24

集群

集群的概述

集群技术是一种用于提高系统性能、可用性、容错性和可扩展性的关键方法。它涉及将多个计算资源或节点组合在一起,以协同工作以处理任务、服务请求或数据处理。

集群类型

无论是哪种集群,都至少包括两台节点服务器,而对外表现成一个整体,只提供一项服务,相当于一台大型计算机。根据群集所针对的目标差异,可分为三种类型的集群

负载均衡集群

负载均衡集群是以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。

高可用集群

高可用集群:以提高应用系统的影响能力、尽可的减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。HA的工作模式包括双工和主从两种模式。双工即所有节点同时在线;主从只有主节点在线,当出现故障后从节点自动切换成主节点

LVS的三种工作模式

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

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

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

LVS反向代理调度方式

常见的 LVS 调度算法及其介绍:
RR(Round Robin)轮询
轮询算法是最简单的负载均衡算法之一。
当有新的请求到达时,RR 算法按照顺序将请求分发到后端服务器,每个服务器依次处理一次请求,然后回到列表的开头。
这个算法适用于所有服务器的性能相似且负载均衡需求相对简单的情况。

WRR(Weighted Round Robin)加权轮询
与 RR 相似,但每个服务器都分配一个权重,权重决定了每个服务器被选择的频率。
具有更高权重的服务器将处理更多的请求。
这个算法用于服务器性能不均匀的情况,可以根据服务器的处理能力进行动态调整。

SH(Source IP Hash)源地址哈希
使用请求的源 IP 地址来计算哈希值,然后将请求分发到具有相应哈希值的服务器。
这确保相同的客户端 IP 地址的请求总是被分发到相同的服务器,适用于需要会话保持的应用程序。

DH(Destination IP Hash)目的地址哈希
类似于 SH,但使用目的 IP 地址来计算哈希值。
这种算法适用于具有相同目的地的请求需要被发送到同一台服务器的情况。

LC(Least Connections)最小连接
LC 算法将请求发送到当前连接数最少的服务器。
这有助于避免将请求发送到已经负载较重的服务器上,从而更好地平衡负载。

WLC(Weighted Least Connections)加权最小连接
类似于 LC,但每个服务器都有一个权重,服务器的连接数除以权重来选择目标服务器。
这个算法适用于具有不同性能的服务器,并且需要更精细的负载均衡控制。

LBLC(Locality-Based Least Connections)基于地址的最小连接
LBLC 算法考虑了客户端 IP 地址的子网,以便将请求路由到同一子网内的服务器,从而减少延迟。
这个算法适用于需要考虑客户端位置以提高性能的场景。

DR模式 反向代理(路由直连)

配置负载调度服务器

启用 ip_vs内核

modprobe ip_vs

在这里插入图片描述
安装ipvsadm软件

yum -y install ipvsadm

配置虚拟 IP 地址(vip地址)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.2.188
NETMASK=255.255.255.255
 systemctl restart network
ifconfig

在这里插入图片描述
调整 proc 响应参数
由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0	
sysctl -p

在这里插入图片描述
配置负载分配策略

ipvsadm -C
ipvsadm -A -t 192.168.2.188:80 -s rr
ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.12:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.13:80 -g
ipvsadm

ipvsadm -ln					#查看节点状态,Route代表 DR模式

配置节点服务器

配置虚拟 IP 地址(VIP:192.168.80.188)

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255		

在这里插入图片描述

在这里插入图片描述
设置内核参数调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p

在这里插入图片描述
4.测试 LVS 群集
在客户端使用浏览器访问 http://192.168.2.188/
在这里插入图片描述
跳转成功配置完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AB实验总结

互联网有线上系统,可做严格的AB实验。传统行业很多是不能做AB实验的。 匹配侧是采用严格的AB实验来进行模型迭代,而精细化定价是不能通过AB实验来评估模型好坏,经历过合成控制法、双重差分法,目前采用双重差分法来进行效果评估。…

无涯教程-JavaScript - MROUND函数

描述 MROUND函数返回一个舍入为所需倍数的数字。 MROUND函数是Excel中的15个舍入函数之一。 语法 MROUND (number, multiple)争论 Argument描述Required/OptionalNumberThe value to round.RequiredMultipleThe multiple to which you want to round number.Required Note…

如何使用chorme版本对应的ChromeDriver(不用更改Chrome版本)

为什么要这样 我们发现在 官网 下载ChromeDriver的地方,没有对于高版本的下载包,可是我们的浏览器版本是 117.0.5938.88,我又不想降低本地的Chrome版本,因为这样也太蠢了,每次更新后可能老版本就不适用了。 使用方法 …

9.2.3.1 【MySQL】XDES Entry链表

当段中数据较少的时候,首先会查看表空间中是否有状态为 FREE_FRAG 的区,也就是找还有空闲空间的碎片区,如果找到了,那么从该区中取一些零碎的页把数据插进去;否则到表空间下申请一个状态为 FREE 的区,也就是…

链表的分割——哨兵位

现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 思路,把链表分成两个新链表,然后连接起来 代码…

vue3 @click那些事

vue3element-plus vue3 click那些事 1.动态决定click能否点击 1.动态决定click能否点击 只需要在点击事件前加一个判断条件

MTK联发科MT6762/MT8788安卓核心板性能参数对比

MT6762核心板是联发科的八核处理器,采用12nm制程工艺。MT6762具有集成的蓝牙、fm、WLAN和gps模块,是一个高度集成的基带平台,包括调制解调器和应用处理子系统启用LTE/LTE-A和C2K智能手机应用程序。MT6762芯片集成了ARM Cortex-A53&#xff0c…

乒乓球廉价底板和套胶对比分析

手机最近没办法写微博,在火车上没事,折腾了下,升级后可以了,我近期又打了很多套胶,我还录了段粘拍的视频一会分享。 这次我还是说几款底板和套胶的感受,最近买了dj200不带A底板,palio cc 和银河…

Git小乌龟不弹add push commit的方法

1.关于使用Git小乌龟无法弹出Add菜单的问题 第一次使用小乌龟软件,发现可以正常将程序从Gitee仓库中克隆到本地,但是在将本地的程序上传到Gitee仓库中时,TortoiseGit无法弹出Add那一系列菜单,如下图所示: 2.解决方法 …

大数据-hadoop

1.hadoop介绍 1.1 起源 1.2 版本 1.3生产环境版本选择 Hadoop三大发行版本:Apache、Cloudera、Hortonworks Apache版本最原始的版本 Cloudera在大型互联网企业中用的较多 Hortonworks文档较好 1.4架构 hadoop由三个模块组成 分布式存储HDFS 分布式计算MapReduce 资源调度引擎Y…

Kubernetes 部署RocketMQ高可用集群

Kubernetes 部署RocketMQ高可用集群 导言RocketMQ 常用的部署模式如下单 Master 模式多 Master 多 Slave-异步复制模式 离线镜像制作1.安装 Go 1.162.制作 RocketMQ Operator Image获取 RocketMQ Operator制作 RocketMQ Operator Image 3.制作 RocketMQ Broker Image制作 Rocke…

助力经销商打赢旺季攻坚战,全兴在全国范围内拉开“兴风暴”

执笔 | 姜 姜 编辑 | 萧 萧 中秋、国庆历来是白酒消费的旺季,也是完成当年任务的关键期,尤其今年“双节”合一,各大食品饮料企业都憋足了劲,白酒促销大戏也轮番上演。 作为中国“老八大名酒”之一的全兴酒业谋定而动&#x…

PyTorch C++ 前端:张量

本篇文章将尝试了解 PyTorch 组件的高级概述以及它们如何配合。 PyTorch 组件的高级概述 后端 PyTorch 后端是用 C++ 编写的,它提供 API 来访问高度优化的库,例如:用于高效矩阵运算的张量库、用于执行 GPU 运算的 CUDA 库以及用于梯度计算的自动微分等。 前端 可以使用…

Vue2+ElementUI 静态首页案例

源码 <template><div class"app-container home"><el-row type"flex" justify"space-around" class"row-bg"><el-card class"box-card cardDiv1"><el-col :span"5"><div clas…

React antd Select 无法在disabled状态下选择并复制输入框内的内容情况分析及解决方案

文章目录 背景问题分析解决思路一&#xff1a;会不会是由于在选择框内hover的时候出现的那个图标导致的解决思路二&#xff1a;会不会是这个span禁止复制解决思路三&#xff1a;去看看antd具体实现 最终解决方案其他版本的解决方案antd3.*antd5.* 背景 在React项目开发中&…

蓝桥杯打卡Day13天

文章目录 整数拆分神奇的口袋 一、整数拆分OJ链接 本题思路:本题是一道简单的01背包问题。由于题目中说将数字拆分成2的幂&#xff0c;而且可以重复使用。 Python代码&#xff1a; N1000010 modint(1e9)f[0]*N;nint(input())f[0]1i1 while i<n:for j in range(i,n1):f[j…

命名和代码风格

一段代码&#xff0c;一个方法后面要打换行&#xff01;&#xff01;&#xff01;&#xff01; api的js代码引入的时候要分开回车空行&#xff0c;例如api的Project.js 命名规则&#xff1a; t-dialog控件显示的visible命名的时候例如&#xff1a;visibleVerify&#xff0c;显…

sudo apt-get update失败的原因和解决方法

ubuntu更新资源包时出现连接超时的问题&#xff1a; 无法发起与 cn.archive.ubuntu.com:80 (2403:2c80:5::6) 的连接 - connect (101: 网络不可达) 无法连接上 cn.archive.ubuntu.com:80 (45.125.0.6)&#xff0c;连接超时 正在读取软件包列表… 完成 W: 无法下载 http://cn.ar…

一文介绍使用 JIT 认证后实时同步用户更加优雅

首先本次说的 JIT 指的是 Just In Time &#xff0c;可以理解为及时录入&#xff0c;一般用在什么样的场景呢&#xff1f; 还记的上次我们说过关于第三方组织结构同步的功能实现&#xff0c;主要目的是将第三方源数据同步到内部平台中来&#xff0c;方便做管控和处理 此处的管…

java.lang.ClassNotFoundException: rx.Single(hystrix)

做springcloud整合hystrix时候&#xff0c;接口加上HystrixCommand后报错。 原因是hystrix依赖的第三方Jar----rxjava版本低&#xff0c;把rxjava更新为最新jar即可