【无标题】云原生作业六

  1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

  2. 基于 openEuler 构建 LVS-DR 群集。

    1. LVS 负载均衡群集的 NAT 模式和 DR 模式优势对比

    NAT 模式(网络地址转换模式)
    网络拓扑简单
    在 NAT 模式下,所有进出的流量都要经过负载均衡器(Director Server)。这使得网络拓扑结构相对简单,只需要在负载均衡器上进行相应的配置,就可以实现对后端服务器(Real Server)的负载均衡。例如,企业内部网络中,当有多台服务器提供相同的服务时,只需要在一台负载均衡器上配置 NAT 规则,就可以将客户端的请求转发到合适的后端服务器上,无需对网络架构进行大规模的调整。
    全性较高
    由于客户端的请求和响应都要经过负载均衡器,负载均衡器可以作为一个中间层,对进出的流量进行监控和过滤。可以在负载均衡器上部署防火墙等安全策略,防止外部网络的攻击直接到达后端服务器。例如,阻止恶意 IP 地址的访问,过滤非法的网络数据包等,从而提高整个群集的安全性。
    对后端服务器要求低**
    后端服务器不需要进行特殊的网络配置,它们只需要知道自己的默认网关是负载均衡器即可。这对于一些不支持复杂网络配置的服务器或者老旧服务器来说非常友好。例如,一些运行特定业务的遗留服务器,可能无法进行复杂的网络设置,使用 NAT 模式可以很方便地将它们加入到负载均衡群集中。

    DR 模式(直接路由模式)
    性能优越
    DR 模式中,负载均衡器只负责将客户端的请求转发到合适的后端服务器,而后端服务器处理完请求后直接将响应返回给客户端,无需再经过负载均衡器。这样可以大大减轻负载均衡器的压力,提高整个群集的处理性能。例如,在高并发的 Web 应用场景中,大量的客户端请求和响应数据如果都经过负载均衡器,会导致负载均衡器成为性能瓶颈,而 DR 模式可以有效避免这个问题。
    可扩展性强
    由于 DR 模式下负载均衡器的压力较小,可以轻松地添加更多的后端服务器来扩展群集的处理能力。而且,后端服务器之间的通信相对独立,添加或移除后端服务器对整个群集的影响较小。例如,随着业务的发展,需要增加服务器来应对更多的用户请求,在 DR 模式下只需要将新的服务器加入到群集中,并进行简单的配置即可。
    网络带宽利用率高
    因为响应数据不经过负载均衡器,所以可以充分利用后端服务器的网络带宽。在一些对网络带宽要求较高的应用场景中,如视频流服务、文件下载服务等,DR 模式可以更好地满足需求。例如,在一个视频网站中,大量的视频数据可以直接从后端服务器传输给客户端,而不需要经过负载均衡器的中转,从而提高了网络带宽的利用率。

一台 openEuler 服务器作为负载均衡器(Director Server), IP 地址为 192.168.1.100。

两台 openEuler 服务器作为后端服务器(Real Server),假设 IP 地址分别为 192.168.1.101 和 192.168.1.102

安装 LVS 相关软件

复制代码
yum install ipvsadm -y
  1. 开启 IP 转发功能


    echo "net.ipv4.ip_forward = 0" >> /etc/sysctl.conf

    echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf

    echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf

    echo "net.ipv4.conf.ens33.send_redirects = 0" >> /etc/sysctl.conf

  2. 配置虚拟 IP(VIP)

    ip addr add 192.168.1.200/32 dev ens33

  3. 配置 LVS 规则

    ipvsadm -A -t 192.168.1.200:80 -s rr

    ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -g

    ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102:80 -g

后端

  1. 安装 Web 服务(以 Nginx 为例)

    yum install nginx -y

    systemctl start nginx

    systemctl enable nginx

  2. 配置 VIP

    ip addr add 192.168.1.200/32 dev lo

    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

    echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

相关推荐
WWJA王文举5 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
zhanghaha13145 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
qq_448011167 小时前
C语言中的动态内存分配
c语言·开发语言·php
汉字萌萌哒7 小时前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter7 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
汉字萌萌哒8 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院9 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙9 小时前
C语言:变量三属性——存储类型
c语言·开发语言
数据知道9 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
果果燕10 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++