【无标题】云原生作业六

  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

相关推荐
楼田莉子1 分钟前
仿muduo的高并发服务器——前置知识讲解和时间轮模块
服务器·开发语言·c++·后端·学习
花间相见2 分钟前
【MS-Swift实战】:LoRA原理+核心参数(r/alpha)调参指南(适配Qwen-1.8B医疗场景)
开发语言·r语言·swift
求知也求真佳4 分钟前
S03|待办写入:让 AI 不再走一步忘一步,多步任务不再跑偏
开发语言·agent
Metaphor6926 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
开发语言·python·pdf
csbysj202013 分钟前
Ruby 正则表达式
开发语言
咸鱼翻身小阿橙17 分钟前
Qt P5
开发语言·数据库·qt
Full Stack Developme22 分钟前
Hutool NumUtil 教程
开发语言·python
AI人工智能+电脑小能手22 分钟前
【大白话说Java面试题】【Java基础篇】第3题:ArrayList和LinkedList有什么区别
java·开发语言·后端·面试·list
AI人工智能+电脑小能手24 分钟前
【大白话说Java面试题】【Java基础篇】第4题:LinkedList是单向链表还是双向链表
java·开发语言·数据结构·后端·链表·面试·list
fish_xk26 分钟前
c++的list
开发语言·c++·list