基于 CentOS 7 构建 LVS-DR 群集

LVS-DR模式工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。
然后Director使用相同的VIP目的IP地址将 请求发送到集群节点或真实服务器。
然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过Director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。

因此,实际上 是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。

分解图如下:

集群架构图

构建步骤

1、配置LVS虚拟IP(VIP)

2、手工执行配置添加LVS服务并增加两台RS

3、手工在RS端绑定VIP

4、配置WEB服务器

5、手工在RS端抑制ARP响应

6、测试

集群环境
主机角色VIPRIPfirewalld
node1LVS192.168.19.140192.168.19.133(DIP)disable
node2WEB1192.168.19.134httpd
node3WEB2192.168.19.135httpd

1、配置LVS虚拟IP(VIP)

[root@node1 ~]# ifconfig ens33:140 192.168.19.140 netmask 255.255.255.0 up

2、手工执行配置添加LVS服务并增加两台RS

[root@node1 ~]# yum install -y ipvsadm   #没有 lvs管理工具就下载

[root@node1 ~]# ipvsadm -A -t 192.168.19.140:80 -s rr
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.134:80 -g
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.135:80 -g

[root@node1 ~]# ipvsadm -Ln     #查看配置
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.19.140:80 rr
  -> 192.168.19.134:80            Route   1      0          0         
  -> 192.168.19.135:80            Route   1      0          0  

3、手工在RS端绑定VIP

[root@node2 ~]# yum install net-tools.x86_64   #centos7没有ifconfig就安装

[root@node2 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up    #临时绑定
[root@node2 ~]# route add -host 192.168.19.140 dev lo      #添加本机访问VIP的路由
[root@node2 ~]# route -n        #查看路由
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.19.2    0.0.0.0         UG    100    0        0 ens33
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.19.140  0.0.0.0         255.255.255.255 UH    0      0        0 lo

=====================================================================

[root@node3 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up
[root@node3 ~]# route add -host 192.168.19.140 dev lo
SIOCADDRT: File exists
[root@node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.19.2    0.0.0.0         UG    100    0        0 ens33
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.19.140  0.0.0.0         255.255.255.255 UH    0      0        0 lo

4、配置WEB服务器

yum install httpd -y                   #下载软件包

setenforce 0                             #关闭seLinux防火墙

systemctl stop firewalld            #关闭防火墙

echo "web test pages ip is `hostname -I`" > /var/www/html/index.html    #页面内容

systemctl restart httpd              #重启生效

5、手工在RS端抑制ARP响应

法一:调整内核参数,关闭arp响应

[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

WEB2同上

方法2:使用arptables抑制

[root@node2 ~] arptables -A INPUT -d 192.168.19.140 -j DROP
[root@node2 ~] arptables -A OUTPUT -s 192.168.19.140 -j mangle --mangle-ip-s 192.16819.135
[root@node2 ~] arptables-save > /etc/sysconfig/arptables

6、测试

在LVS上执行    watch ipvsadm -Ln   (实时监控)

主机测试

再次查看

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何测试Linux磁盘的读写速度

在Linux系统中也有很多命令可以测试硬盘的读写速度指标。以下是几个常用命令(注意:在执行测试命令之前,请务必备份数据以避免数据丢失! 1、dd 命令 首先挂载磁盘 mount /dev/sdb /testdd 命令可用于进行硬盘读写速度测试。 例…

Linux6.36 Kubernetes Pod进阶

文章目录 计算机系统5G云计算第三章 LINUX Kubernetes Pod进阶一、资源限制1.CPU 资源单位2.内存 资源单位3.重启策略(restartPolicy)4.健康检查:又称为探针(Probe)5.启动、退出动作 计算机系统 5G云计算 第三章 LIN…

任务14、无缝衔接,MidJourney瓷砖(Tile)参数制作精良贴图

14.1 任务概述 在这个实验任务中,我们将深入探索《Midjourney Ai绘画》中的Tile技术和其在艺术创作中的具有挑战性的应用。此任务将通过理论学习与实践操作相结合的方式,让参与者更好地理解Tile的核心概念,熟练掌握如何在Midjourney平台上使用Tile参数,并实际运用到AI绘画…

Docker搭建zookeeper

问题背景 前言 本文参考自:docker-compose快速搭建Zookeeper集群,熬到凌晨三点多验证部署成功,网上有很多文章已经无法正确部署了,因为有些东西版本升级了,版本跟不上就会报错还有一种更加详细更加全面的部署方式&…

SAS-数据集SQL垂直(纵向)合并

一、SQL垂直合并的基本语法 一个selectt对应一个表,select之间用set-operator连接,set-operator包括:except(期望)、intersect(相交)、union(合并),outer un…

【原创】基于JavaWeb的婚礼策划平台

主要功能介绍:系统基于Java语言开发。整个程序属于B/S架构应用。在开发的时候,将婚礼策划中主要的业务如:婚纱摄影预约以及婚纱租赁等作为主要的目标和研究方向。婚礼策划平台系统从整体结构设计上,由网站前台和系统后台组成。网站…

比特鹏哥5-数组【自用笔记】

比特鹏哥5-数组【自用笔记】 1.数组的概念2.一维数组的创建和初始化创建的语句结构初始化的语句结构 3.一维数组的使用数组的下标:从0开始,n个数组,最后一个的下标是n-1 4.一维数组在内存中的存储5.sizeof计算数组元素个数可以计算元素个数并…

双周赛110(模拟、枚举+哈希表)

文章目录 双周赛110[2806. 取整购买后的账户余额](https://leetcode.cn/problems/account-balance-after-rounded-purchase/)模拟 [2807. 在链表中插入最大公约数](https://leetcode.cn/problems/insert-greatest-common-divisors-in-linked-list/)模拟 [2808. 使循环数组所有元…

C++如何改变文字的颜色(不同字显示不同颜色)

许多同学们在制作c游戏的时候只有黑白两种颜色。就像si人了一样 非常影响视觉效果,显得十分不好看,因此,我决定发一个改变文字颜色的文章! 下面介绍方法: 在了解程序之前,首先好了解光的三原色已经三原色…

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,…

CommStudio for .NET Crack

CommStudio for .NET Crack CommStudio for.NET使您的应用程序可以轻松地使用串行端口和调制解调器进行通信。CommStudio for.NET是一套全面的组件和可视化调试工具,可将远程系统和设备与visual Studio 2005和visual Studio 2008集成。开发与遗留系统和外部设备集成…

清风数学建模——插值算法

插值法 文章目录 插值法作用定义概念一维插值问题一维插值多项式原理定理 拉格朗日插值法和牛顿插值法埃尔米特插值分段线性插值分段三次埃尔米特插值法代码三次样条插值及其代码例子n维数据的插值(了解) 作用 数模比赛中,常常需要根据已知的…

Git从远程仓库中删除文件,并上传新文件

目录 删除: 拉取远程分支的更新: ​编辑 首先查看git状态: ​编辑 删除文件并提交版本库: 提交: 上传新文件: 首先查看git状态: 提交到暂存区: 提交到版本库: 上…

【分布式系统】前言

争取写一下阅读笔记,更新有关分布式系统的一切,先开个坑。 现在的心得如下: 不知道啥时候能破解哈~~ 内容包括部分6.824 读的论文 DDIA: DDIA mapreduce GFS VMwareFT Raft zookeeper chain replication…

聊聊springcloud如何与k8s configMap整合实现配置动态刷新

前言 配置中心在微服务的服务治理场景基本上是属于标配,常见可以用来做配置中心有nacos、apollo、zookeeper、springcloud config、consul、etcd、redis、disconf、dimond、xxl-conf等。这些组件的特点都是需要安装,如果大家的部署环境中有用到k8s&…

【沁恒蓝牙mesh】CH58x USB功能开发记录(三)

本博文主要记录 ,【沁恒蓝牙mesh】CH58x USB功能开发记录(三),数据收发基于寄存器级别解释 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎📝 个人主页&#xf…

使用Vue+CSS实现汉堡图标过渡为叉号图标,有点意思

前言 本文给大家分享三个具有过渡效果的汉堡图标,当点击汉堡图标时,过渡为叉号图标。这种具有过渡特效的图标挺炫酷的,感觉一下子给网页增加一点新颖特色。早在2015年左右,国外挺多优秀门户网站都有使用类似的图标,那…

Spring中的事务

一、为什么需要事务? 事务定义 将一组操作封装成一个执行单元(封装到一起),要么全部成功,要么全部失败。 为什么要用事务? 比如转账分为两个操作: 第一步操作: A 账户 -100 元…

使用openapi-generator-cli时遇到了代理的问题

前言:最近在捣鼓一个开源的管理kafka的web版,名字叫kafka-ui。准备部署到本地,方便平时遇到问题时,查看kafka的情况。开源项目github地址:点这里 。拿到这个项目,折腾了几天,今天终于编译成功了…

图片如何转pdf?几个小妙招了解一下

图片如何转pdf?在日常工作和生活中,我们经常需要将图片转换成PDF格式,以便于我们进行存档、传输或打印。那么,如何快速、方便地将图片转换成PDF呢?这里介绍就为大家介绍几款好用的工具。 我们可以使用【迅捷PDF转换器】…