【无标题】云原生作业六

  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

相关推荐
BingoGo18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端