【部署LVS-DR 群集】

news2024/11/17 7:24:08

目录

  • 一、DR模式 LVS负载均衡群集
    • 1、数据包流向分析
    • 2、DR 模式的特点
  • 二、DR模式 LVS负载均衡群集部署
    • 1、1.配置负载调度器(192.168.80.30)
      • (1)配置虚拟 IP 地址(VIP:192.168.102.188)
      • (2)调整 proc 响应参数
      • (3)配置负载分配策略
    • 2、部署共享存储(NFS服务器:192.168.102.50)
    • 3.配置节点服务器(192.168.102.10、192.168.102.20)
      • 1、配置节点服务器1 (192.168.102.20)
        • (1)配置虚拟 IP 地址(VIP:192.168.102.188)
        • (2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突
      • 2、配置节点服务器2(192.168.102.10)
        • (1)配置虚拟 IP 地址(VIP:192.168.80.188)
        • (2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突


一、DR模式 LVS负载均衡群集

1、数据包流向分析

在这里插入图片描述

(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
(5)Real Server 直接将响应报文传送到客户端。

2、DR 模式的特点

(1)Director Server 和 Real Server 必须在同一个物理网络中。
(2)Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
(3)Director Server作为群集的访问入口,但不作为网关使用。
(4)所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
(5)Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。
(6)Real Server 上的 lo 接口配置 VIP 的 IP 地址。

二、DR模式 LVS负载均衡群集部署

DR 服务器:192.168.102.30
NFS 服务器 共享存储: 192.168.102.50
Web 节点服务器1:192.168.102.10
Web 节点服务器2:192.168.102.20
vip:192.168.102.188
windows客户端:192.168.102.200

1、1.配置负载调度器(192.168.80.30)

关闭防火墙

systemctl stop firewalld.service
setenforce 0

检测ipvsadm服务是否存在,不存在就安装

modprobe ip_vs
cat /proc/net/ip_vs
 
yum -y install ipvsadm

(1)配置虚拟 IP 地址(VIP:192.168.102.188)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0  
#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.102.188
NETMASK=255.255.255.255
ifup ens33:0
ifconfig ens33:0

(2)调整 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

在这里插入图片描述

(3)配置负载分配策略

创建一个文件路径,开启ipvsadm服务

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

在这里插入图片描述

ipvsadm -C
ipvsadm -A -t 192.168.102.188:80 -s rr
ipvsadm -a -t 192.168.102.188:80 -r 192.168.102.10:80 -g			
ipvsadm -a -t 192.168.102.188:80 -r 192.168.102.20:80 -g

隧道模式的话

ipvsadm -C
ipvsadm -A -t 192.168.102.188:80 -s rr
ipvsadm -a -t 192.168.102.188:80 -r 192.168.102.10:80 -i		
ipvsadm -a -t 192.168.102.188:80 -r 192.168.102.20:80 -i

启动服务

ipvsadm

在这里插入图片描述

查看节点状态,Route代表 DR模式

ipvsadm -ln

在这里插入图片描述

2、部署共享存储(NFS服务器:192.168.102.50)

关闭防火墙

systemctl stop firewalld.service
setenforce 0

安装nfs服务

yum -y install nfs-utils rpcbind

准备一下共享的网页页面

mkdir /opt/dai /opt/benet
chmod 777 /opt/dai /opt/benet
echo " this is dai web! " > /opt/dai/index.html
echo " this is benet web! " > /opt/benet/index.html

在这里插入图片描述

编辑发布配置

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

在这里插入图片描述

开启服务

systemctl start rpcbind.service
systemctl start nfs.service

发布

exportfs -rv

在这里插入图片描述

3.配置节点服务器(192.168.102.10、192.168.102.20)

1、配置节点服务器1 (192.168.102.20)

关闭防火墙

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

(1)配置虚拟 IP 地址(VIP:192.168.102.188)

#此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。

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

在这里插入图片描述

注意:子网掩码必须全为 1

启动虚拟网卡 ,并添加路由,将发送给vip地址的包从虚拟网卡回环地址发送(将访问vip的数据限制在本地以免arp混乱)

ifup lo:0
ifconfig lo:0
route add -host 192.168.102.188 dev lo:0

添加到rc.local 开机自动加载上面的限制命令 (永久添加)

vim /etc/rc.d/rc.local
route add -host 192.168.102.188 dev lo:0

在这里插入图片描述

加权限

chmod +x /etc/rc.d/rc.local

(2)调整内核的 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
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

刷新配置

sysctl -p

或者可以直接修改内核配置文件

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p

在这里插入图片描述

安装nfs rpc服务以便从NFS服务器获得html页面文件

yum -y install httpd 

使用mount 挂载到网页目录里,查看到对方主机的网页页面

mount 192.168.102.50:/opt/benet /var/www/html/

在这里插入图片描述
挂载好后 启动服务,并添加一下开机自动启动

systemctl start httpd.service 
systemctl enable httpd.service 

在这里插入图片描述
如果想要不停的刷新都实现轮询,需要关闭长链接

vim /etc/httpd/conf/httpd.conf
    KeepAlive off
 
systemctl restart httpd

在这里插入图片描述

2、配置节点服务器2(192.168.102.10)

关闭防火墙

systemctl stop firewalld.service
setenforce 0

(1)配置虚拟 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.102.188
NETMASK=255.255.255.255

添加到rc.local 开机自动加载上面的限制命令 (永久添加)

vim /etc/rc.d/rc.local
route add -host 192.168.102.188 dev lo:0

在这里插入图片描述

加权限

chmod +x /etc/rc.d/rc.local

(2)调整内核的 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
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

刷新配置

sysctl -p

或者可以直接修改内核配置文件

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p

在这里插入图片描述

如果想要不停的刷新都实现轮询,需要关闭长链接

vim /etc/httpd/conf/httpd.conf
    KeepAlive off
 
systemctl restart httpd

在这里插入图片描述

使用浏览器进行访问
在这里插入图片描述

也可以使用curl 来进行本地访问
在这里插入图片描述

使用DR 模式配置的时候要注意的地方

节点服务器要在 lo:0 上配置VIP , 修改内核参数 arp_ignore = 1 arp_announce = 2 , 添加路由
调度器要在 ens33:0 上配置VIP , 修改内核参数关闭ip路由转发和重定向功能
调度器安装 ipvsadm 配置 虚拟服务器 和 真实节点服务器

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

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

相关文章

《设计模式》之装饰器模式

文章目录 1、定义2、动机3、类结构4、优缺点5、注意事项6、总结7、代码实现(C) 1、定义 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码…

PPT中这8个隐藏技巧-掌握了马上让你幸福感满满

开篇 一个好的PPT需要精雕细琢。即使我们使用了AIGC特别是时下流行的用GPT书写大纲,然后把大纲内的内容放到一些自动GC PPT内容的生成器里生成后的PPT其实也不是马上可以拿来用的。工作上一份大领导、公司、集团级别的PPT不可能90%使用GPT GC生成就可以直接交付的。比如说我们…

Trie树模板与应用

文章和代码已经归档至【Github仓库:https://github.com/timerring/algorithms-notes 】或者公众号【AIShareLab】回复 算法笔记 也可获取。 文章目录 Trie树(字典树)基本思想例题 Trie字符串统计code关于idx的理解 模板总结应用 最大异或对分…

初探BERTPre-trainSelf-supervise

初探Bert 因为一次偶然的原因,自己有再次对Bert有了一个更深层地了解,特别是对预训练这个概念,首先说明,自己是看了李宏毅老师的讲解,这里只是尝试进行简单的总结复述并加一些自己的看法。 说Bert之前不得不说现在的…

ansible远程执行指令,/bin/sh: java: command not foundnon-zero return code

问题描述:ansible远程执行指令,初选指令加载不全, [rootVM-0-6-centos ~]# ansible all -m shell -a "java -version" 10.206.0.15 | FAILED | rc127 >> /bin/sh: java: command not foundnon-zero return code 解决方案&a…

C++(8):IO 库

IO 类 IO 库类型和头文件 iostream 定义了用于读写流的基本类型,fstream 定义了读写命名文件的类型,sstream 定义了读写内存 string 对象的类型。 其中带 w 前缀的类型用来操作宽字符语言 (wchar_t)。宽字符版本的类型和函数前都有一个 w,如…

SAP从入门到放弃系列之PP/DS-part1

翻译一篇大佬文章,了解一下PPDS前世今生和产品功能出现的业务背景。虽然是15年的,但经典永流传~~~,感谢大佬的文章。 原文地址: #S4HANA 1610 use case series: 9a – Production Planning and Detailed Scheduling – PP/DS (b…

【MySQL学习笔记】子查询与联结(连接)

1.子查询 将一条select语句返回的结果用于另一条select语句的where子句中。 执行时,先执行子查询,再执行主查询。 select sid from sc where cid in (select cid from course where cname数据库应用技术);子查询一般与 IN 操作符结合使用&#xff0…

《微服务实战》 第三十二章 微服务链路跟踪-sleuth zipkin

前言 大型分布式微服务系统中,一个系统被拆分成N多个模块,这些模块负责不同的功能,组合成一套系统,最终可以提供丰富的功能。在这种分布式架构中,一次请求往往需要涉及到多个服务服务之间的调用错综复杂,对…

Lenovo Yoga-710-14IKB电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件配置 硬件型号驱动情况 主板Lenovo Yoga 710 (14") - 14IKB (without dGPU) 处理器Intel i5-7200U (4) 2.50GHz (IKBL)已驱动 内存48 GB ( 海盗船 DDR4 3200…

web worker创建多个 JavaScript 线程 (使用GTP写的文章)

前言 最近在优化公司的一个项目,使用的就是web worker去优化,做了那些优化,一个是状态的优化,(通信的状态实时更新,以前的做法是做个定时任务实时获取它的状态,然后让它在页面渲染,这…

【Linux】 -- TCP协议 (一)

TCP协议 Tcp协议可靠性冯诺依曼体系结构 TCP的协议格式序号与确认序号窗口大小六个标志位 确认应答机制 (ACK)超时重传机制连接管理机制 Tcp协议 TCP全称为 “传输控制协议”(Transmission Control Protocol) TCP协议被广泛应用…

[linux_C语言_udp的多种实现方法及网络调试中遇到的问题]

linux_C语言_udp的多种实现方法 最基本的方式(不用组播不用sigio信号不使能广播属性)接收端发送端 使用SIGIO信号的方式(使用sigio信号使用广播使能属性)服务端客户端 使用组播模式服务端客户端 tcp和udp的使用区别调试中遇到的问题所有源码下载点这~~ 最基本的方式(不用组播不…

Unix/Linux编程:UDS 流(Stream)

〇、前言 socket 是一种 IPC (Inter-Process Communication,进程间通信)方法,它允许位于同一主机(计算机)或使用网络连接起来的不同主机上的应用程序之间交换数据。通过使用Socket,开发人员可以…

【C++】——栈和队列(stack、queue)及优先队列(priority_queue)的介绍和模拟实现

文章目录 1. 前言2. 容器适配器2.1 容器适配器的介绍2.2 STL标准库中stack和queue的底层结构2.3 deque的简单介绍2.4 deque的缺陷2.5 为什么选择deque作为stack和queue的底层默认容器 3. stack3.1 stack的介绍3.2 stack的使用3.3 stack模拟实现 4. queue4.1 queue的介绍4.2 que…

数据分布——长尾分布的处理

前言 长尾分布在分类任务中会提到这个名,这是因为长尾分布这个现象问题会导致在训练过程中会出现出错率高的问题,影响了实验结果。 这里要说的是,长尾分布是一种现象,有的地方说是一种理论或定律,我感觉这样说不太确切&#xff0…

取石子游戏——算法与编程

取石子游戏 目录 问题描述输入输出格式输入格式:输出格式: 输入输出样例输入样例#1:输出样例#1:提示信息 算法尼姆博奕 代码 问题描述 A l i c e Alice Alice和 B o b Bob Bob在玩取石子游戏,摆在他们面前的有 n n n堆…

GIS入门进阶之012

一、引言 空间数据可视化是有效传输与表达地理信息,挖掘空间数据之间的内在联系,揭示地理现象内在规律的重要手段。它通过运用地图学、计算机图形学和图像处理技术,将地学信息的输入、处理、查询、分析与预测的结果采用符号、图形、图像并结合…

OpenGL 材质实现

1.简介 在现实世界里,每个物体会对光产生不同的反应。比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。有些物体反射光的时候不会有太多的散射,因而产生较小的高光点&#xf…

35岁被淘汰?软件测试工程师职业生涯规划,从技术到管理...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 入门阶段&#xf…