Ubuntu 22.04 LVS实验手册


Ubuntu 22.04 LVS(NAT/DR/TUN)三种模式实验手册

核心组件说明

  • 调度器(DS,Director Server):集群入口节点,负责接收客户端请求,依据预设调度算法将请求均匀分发至后端真实服务器,核心功能是请求转发与负载调度。
  • 真实服务器(RS,Real Server):集群业务节点,部署实际服务(本实验为 Nginx Web 服务),接收并处理 DS 分发的请求,直接或间接向客户端返回响应结果。
  • 虚拟 IP(VIP,Virtual IP):客户端访问集群的唯一目标 IP。NAT 模式下仅绑定于 DS 外网网卡;DR/TUN 模式下需在 DS 与所有 RS 的虚拟接口(lo:0/tun0)上共享配置,确保响应源 IP 一致性。
  • ipvsadm 工具:LVS 集群核心管理工具,用于创建/删除虚拟服务(VS)、绑定/解绑真实服务器(RS)、指定转发模式、配置调度算法及实现规则持久化,是 LVS 配置的核心依赖。

三种模式核心差异对比

模式 核心转发逻辑 网络拓扑要求 性能表现 适用场景
NAT 双重地址转换:DS 改写请求数据包的目标 IP(转发至 RS),RS 响应后 DS 再改写源 IP(回传给客户端),所有流量必经 DS 中转 DS 需双网卡(外网+内网),RS 与 DS 内网网段互通,RS 默认网关必须指向 DS 内网 IP 低(DS 是唯一流量瓶颈,需承担全量转发压力) 小规模集群、低并发场景,硬件资源有限(无需额外网络设备支持)
DR MAC 地址改写:DS 仅修改请求数据包的目标 MAC(指向目标 RS),IP 地址不变;RS 直接以 VIP 为源 IP 响应客户端,响应流量绕开 DS 所有节点处于同一二层局域网(同一交换机),DS 与 RS 共享 VIP(配置于 lo:0 接口) 极高(无流量中转瓶颈,DS 仅处理请求分发,不参与响应转发) 中大规模集群、高并发场景(如 Web 服务集群),生产环境首选
TUN IPIP 隧道封装:DS 将请求数据包封装在新 IP 包中(目标 IP 为 RS),RS 解封装后处理请求,直接以 VIP 响应客户端,响应流量绕开 DS DS 与 RS 需支持 IPIP 隧道(加载 ipip 内核模块),可跨网段部署,共享 VIP(配置于 tun0 接口) 中等(隧道封装/解封装存在轻微性能开销,优于 NAT 但略低于 DR) 分布式集群、RS 跨网段部署场景(如跨机房负载均衡)

一、ipvsadm 命令完全详解(核心工具前置)

1.1 命令定位

ipvsadm 是 LVS(Linux Virtual Server)的核心配置工具,用于管理虚拟服务(VS)和真实服务器(RS)的映射规则、转发模式、调度算法等,是实现 LVS 负载均衡的基础。

1.2 基本语法

ipvsadm [子命令] [参数] [目标/值]

核心逻辑:分为「管理虚拟服务(VS)」和「管理真实服务器(RS)」两类操作,通过子命令区分层级。

1.3 核心子命令(必掌握)

子命令 作用 典型示例
-A 添加虚拟服务(VS) ipvsadm -A -t 192.168.8.30:80 -s rr
-E 编辑已存在的虚拟服务 ipvsadm -E -t 192.168.8.30:80 -s wrr
-D 删除指定虚拟服务 ipvsadm -D -t 192.168.8.30:80
-a 给 VS 添加真实服务器(RS) ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.21:80 -g
-e 编辑已存在的 RS ipvsadm -e -t 192.168.8.30:80 -r 192.168.8.21:80 -m
-d 从 VS 删除指定 RS ipvsadm -d -t 192.168.8.30:80 -r 192.168.8.21:80
-C 清空所有 LVS 规则 ipvsadm -C
-S 保存规则到标准输出 ipvsadm -S > /etc/ipvsadm.rules
-R 从标准输入恢复规则 ipvsadm -R < /etc/ipvsadm.rules
-L/-l 列出当前 LVS 规则 ipvsadm -Ln(-n:数字格式显示 IP/端口)

1.4 关键参数说明

(1)虚拟服务类型参数

参数 含义 适用场景
-t TCP 服务(格式:VIP:PORT) HTTP/HTTPS/SSH 等 TCP 服务
-u UDP 服务(格式:VIP:PORT) DNS/NTP 等 UDP 服务
-f 防火墙标记(基于标记转发) 多端口聚合的复杂业务

(2)LVS 转发模式参数(核心)

参数 模式名称 全称 核心特点 性能
-m NAT Masquerading 所有流量经 DS 转发/回传
-g DR Direct Routing RS 直接响应客户端(绕开 DS)
-i TUN IP Tunneling 隧道封装,RS 可跨网段

(3)调度算法参数(-s)

参数值 算法名称 适用场景 核心逻辑
rr 轮询(Round Robin) RS 性能一致 按顺序均分请求
wrr 加权轮询(Weighted RR) RS 性能不均 按权重分配(如权重 2:1 则 2:1 分发)
lc 最小连接(Least Connection) 长连接业务 优先分配给当前连接数最少的 RS
wlc 加权最小连接(Weighted LC) 性能+连接数不均 结合权重和连接数动态分配
sh 源哈希(Source Hash) 会话保持需求 同一客户端固定访问同一 RS

(4)规则查看扩展参数

参数组合 作用 示例
-Ln 基础规则(数字格式) ipvsadm -Ln
-Lnc 规则 + 实时连接数 ipvsadm -Lnc
-Ln --stats 规则 + 统计信息(总连接/发包) ipvsadm -Ln --stats
-Ln --rate 规则 + 速率(每秒连接/发包) ipvsadm -Ln --rate

1.5 常用实战示例

# 1. 清空旧规则(实验前必做)
ipvsadm -C

# 2. 创建 TCP 虚拟服务(VIP:80,加权轮询)
ipvsadm -A -t 192.168.8.30:80 -s wrr

# 3. 添加 RS(DR 模式,权重 2)
ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.21:80 -g -w 2

# 4. 添加 RS(DR 模式,权重 1)
ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.22:80 -g -w 1

# 5. 保存规则(防止重启丢失)
ipvsadm -S > /etc/ipvsadm.rules

# 6. 查看规则(验证配置)
ipvsadm -Ln

1.6 常见问题与解决方案

  • 权限拒绝(Permission denied):所有 ipvsadm 命令必须以 root 权限执行,建议全程添加 sudo 前缀,避免权限不足。
  • 规则添加失败(Remote address already exists):该 RS 已绑定至当前 VS,需先执行 ipvsadm -d 解绑,或用 ipvsadm -C 清空所有规则后重新配置。
  • 查询规则无结果:可能是未创建 VS 或规则被误清空,需重新执行“创建 VS→绑定 RS”流程,完成后再次验证。
  • 规则持久化失效:需确认 ipvsadm.service 服务已启用(sudo systemctl is-enabled ipvsadm),若未启用需执行 sudo systemctl enable --now ipvsadm

二、实验前置说明

2.1 实验环境规划

节点角色 数量 系统版本 核心软件 核心网络要求
Director Server(DS) 1 Ubuntu 22.04 ipvsadm、iproute2 NAT 模式需双网卡(ens33:外网,ens34:内网);DR/TUN 模式单网卡(ens33)
Real Server(RS) 2 Ubuntu 22.04 nginx 能与 DS 通信(NAT 模式用 ens34 内网,DR/TUN 模式用 ens33 外网)
测试客户端 1 任意 curl/wget 能访问 DS 的 VIP(192.168.8.30)

2.2 环境准备

2.2.1 系统初始化

# 所有Ubuntu服务器都要操作
# 1. 更新apt源
sudo apt update 

# 2. 更新系统
sudo apt upgrade -y

# 3. 关闭防火墙(实验简化,生产需精细化配置)
sudo ufw disable
sudo systemctl stop ufw
sudo systemctl disable ufw

# 4. 关闭 swap(优化性能)
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab

# 5. 关闭 AppArmor(避免干扰)
sudo systemctl stop apparmor
sudo systemctl disable apparmor

# 6. 配置主机名(可选,便于区分)
# DS 节点:sudo hostnamectl set-hostname lvs-ds
# RS1 节点:sudo hostnamectl set-hostname lvs-rs1
# RS2 节点:sudo hostnamectl set-hostname lvs-rs2

# 7. 配置 hosts 解析(所有节点添加)
sudo tee -a /etc/hosts <<EOF
# LVS 实验节点
192.168.8.20 lvs-ds    # DS 节点外网 IP
192.168.8.21 lvs-rs1   # RS1 节点外网 IP(DR/TUN 模式用)
192.168.8.22 lvs-rs2   # RS2 节点外网 IP(DR/TUN 模式用)
10.0.0.1 lvs-ds-inner  # DS 节点内网 IP(NAT 模式用)
10.0.0.21 lvs-rs1-inner # RS1 节点内网 IP(NAT 模式用)
10.0.0.22 lvs-rs2-inner # RS2 节点内网 IP(NAT 模式用)
EOF

# 仅在DS调度服务器配置
sudo apt install -y ipvsadm iproute2  net-tools tcpdump

# 8. ipvsadm 规则持久化(Ubuntu 22.04 无默认服务,手动创建)
sudo tee /etc/systemd/system/ipvsadm.service <<EOF
[Unit]
Description=IPVSADM Rule Loader
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ipvsadm -R < /etc/ipvsadm.rules
ExecStop=/sbin/ipvsadm -S > /etc/ipvsadm.rules
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

# 9. 启用持久化服务
sudo systemctl daemon-reload
sudo systemctl enable ipvsadm

2.2.2 RS 节点配置测试页面(区分不同 RS)

sudo apt install -y iproute2 nginx net-tools tcpdump

# RS1 节点
sudo rm -f /var/www/html/index.nginx-debian.html
sudo tee /var/www/html/index.html <<EOF
<h1>Real Server 1 (192.168.8.21 / 10.0.0.21)</h1>
EOF

# RS2 节点
sudo rm -f /var/www/html/index.nginx-debian.html
sudo tee /var/www/html/index.html <<EOF
<h1>Real Server 2 (192.168.8.22 / 10.0.0.22)</h1>
EOF

# 启动 nginx 并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 验证 nginx 可用性(本地访问)
curl http://127.0.0.1

三、LVS-NAT 模式实验

3.1 模式原理

  • DS 需双网卡:ens33(外网,VIP)对外提供服务,ens34(内网)与 RS 通信;

  • 客户端请求经 DS 转发到 RS,RS 响应数据包必须经 DS 回传(RS 网关指向 DS 内网 IP);

  • 所有流量经过 DS,性能瓶颈在 DS。

3.2 网络规划

节点 外网 IP(ens33) 内网 IP(ens34) 网关
DS 192.168.8.20/24 10.0.0.1/24 -(无需配置网关)
RS1 -(禁用或不配置) 10.0.0.21/24 10.0.0.1(DS 内网 IP)
RS2 -(禁用或不配置) 10.0.0.22/24 10.0.0.1(DS 内网 IP)

3.3 分步配置

3.3.1 DS 节点配置

(1)配置双网卡 IP(ens33/ens34)

# 编辑 netplan 配置文件(文件名可能为 00-installer-config.yaml)
sudo tee /etc/netplan/00-installer-config.yaml <<EOF
network:
  ethernets:
    ens33:  # 外网网卡
      addresses:
        - 192.168.8.20/24
    ens34:  # 内网网卡
      addresses:
        - 10.0.0.1/24
  version: 2
EOF

# 应用网络配置
sudo netplan apply

# 验证网卡配置
ip addr show ens33
ip addr show ens34

(2)开启 IP 转发(核心)

# 临时开启
sudo sysctl -w net.ipv4.ip_forward=1

# 永久开启
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1
EOF
sudo sysctl -p

(3)配置 ipvsadm 规则

# 清空旧规则
sudo ipvsadm -C

# 添加 VIP 虚拟服务(ens33 外网 IP:80 端口,轮询算法)
sudo ipvsadm -A -t 192.168.8.20:80 -s rr

# 添加 RS 节点(NAT 模式用 -m 参数,指定 RS 内网 IP)
sudo ipvsadm -a -t 192.168.8.20:80 -r 10.0.0.21:80 -m
sudo ipvsadm -a -t 192.168.8.20:80 -r 10.0.0.22:80 -m

# 保存规则
sudo ipvsadm -S > /etc/ipvsadm.rules

# 验证规则
sudo ipvsadm -Ln

3.3.2 RS 节点配置(网关指向 DS 内网 IP)

注意:Ubuntu 22.04 已废弃 gateway4,改用 routes 配置网关;仅启用内网网卡 ens34,禁用外网网卡 ens33。

# 编辑 RS1 节点 netplan 配置文件
sudo tee /etc/netplan/00-installer-config.yaml <<EOF
network:
  ethernets:
    ens33:  # 禁用外网网卡
      dhcp4: no
      dhcp6: no
    ens34:  # 配置内网网卡
      addresses:
        - 10.0.0.21/24
      routes:
        - to: 0.0.0.0/0
          via: 10.0.0.1  # 指向 DS 内网 IP
  version: 2
EOF

# RS2 节点仅需修改 addresses 为 10.0.0.22/24,其余相同
# sudo tee /etc/netplan/00-installer-config.yaml <<EOF
# network:
#   ethernets:
#     ens33:
#       dhcp4: no
#       dhcp6: no
#     ens34:
#       addresses:
#         - 10.0.0.22/24
#       routes:
#         - to: 0.0.0.0/0
#           via: 10.0.0.1
#   version: 2
# EOF

# 应用配置并验证
sudo netplan apply
ip route show default  # 验证网关是否为 10.0.0.1
ip addr show ens34     # 验证内网 IP 配置正确

3.4 验证

测试客户端需处于 192.168.8.0/24 网段(与 DS 外网网卡同网段),执行循环访问验证轮询效果:

for i in {1..5}; do curl http://192.168.8.20; echo -e "\n"; done

预期结果:交替显示 Real Server 1 (192.168.8.21 / 10.0.0.21)Real Server 2 (192.168.8.22 / 10.0.0.22)

四、LVS-DR 模式实验(生产首选)

4.1 模式原理

  • 所有节点在同一局域网(192.168.8.0/24),DS 和 RS 均配置相同 VIP(虚拟 IP);

  • RS 禁用 ARP 响应(避免 VIP 地址冲突);

  • 客户端请求经 DS 转发到 RS,RS 直接响应客户端(绕开 DS),性能最优。

4.2 网络规划

节点 物理 IP(ens33) VIP(虚拟 IP,lo:0 接口) 网关
DS 192.168.8.20/24 192.168.8.30/32 192.168.8.1(局域网网关,可选)
RS1 192.168.8.21/24 192.168.8.30/32 192.168.8.1(局域网网关)
RS2 192.168.8.22/24 192.168.8.30/32 192.168.8.1(局域网网关)

4.3 分步配置

4.3.1 所有节点配置 VIP(lo:0 接口)

# 配置 VIP(临时生效,重启失效)
sudo ip addr add 192.168.8.30/32 dev lo label lo:0

# 启用 lo 接口(确保接口活跃)
sudo ip link set lo up

# 验证 VIP 配置
ip addr show lo  # 查看 lo 接口是否有 192.168.8.30/32 地址

4.3.2 RS 节点禁用 ARP 响应 + 关闭反向路径过滤(核心)

# 临时配置
sudo sysctl -w net.ipv4.conf.all.arp_ignore=1
sudo sysctl -w net.ipv4.conf.all.arp_announce=2
sudo sysctl -w net.ipv4.conf.lo.arp_ignore=1
sudo sysctl -w net.ipv4.conf.lo.arp_announce=2
sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.lo.rp_filter=0
sudo sysctl -w net.ipv4.conf.ens33.rp_filter=0  # 针对外网网卡关闭反向路径过滤

# 永久配置
sudo tee -a /etc/sysctl.conf <<EOF
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.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.ens33.rp_filter = 0
EOF
sudo sysctl -p

4.3.3 DS 节点配置 ipvsadm 规则

# 清空旧规则
sudo ipvsadm -C

# 添加 VIP 虚拟服务(DR 模式用 -g 参数,指定 VIP:80)
sudo ipvsadm -A -t 192.168.8.30:80 -s rr

# 添加 RS 节点(指定 RS 物理 IP,DR 模式 -g)
sudo ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.21:80 -g
sudo ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.22:80 -g

# 保存规则
sudo ipvsadm -S > /etc/ipvsadm.rules

# 验证规则
sudo ipvsadm -Ln

4.4 验证

测试客户端访问 VIP(192.168.8.30),验证轮询效果:

for i in {1..5}; do curl http://192.168.8.30; echo -e "\n"; done

预期结果:交替显示 Real Server 1 (192.168.8.21 / 10.0.0.21)Real Server 2 (192.168.8.22 / 10.0.0.22)

五、LVS-TUN 模式实验(跨网段场景)

5.1 模式原理

  • DS 与 RS 之间通过 IPIP 隧道通信,RS 可跨网段部署(本实验仍用同网段演示,核心验证隧道配置);

  • 需加载 ipip 内核模块,支持隧道封装/解包;

  • RS 直接响应客户端,性能优于 NAT、略低于 DR。

5.2 网络规划

节点 物理 IP(ens33) VIP(虚拟 IP,tunl0 接口) 隧道接口
DS 192.168.8.20/24 192.168.8.30/32 tunl0(IPIP 隧道)
RS1 192.168.8.21/24 192.168.8.30/32 tunl0(IPIP 隧道)
RS2 192.168.8.22/24 192.168.8.30/32 tunl0(IPIP 隧道)

5.3 分步配置

5.3.1 所有节点加载 ipip 内核模块

# 临时加载
sudo modprobe ipip

# 验证模块加载成功
lsmod | grep ipip  # 输出 ipip 相关内容则成功

# 永久加载(重启生效)
sudo tee -a /etc/modules-load.d/ipip.conf <<EOF
ipip
EOF

5.3.2 DS 节点配置隧道 + ipvsadm 规则

(1)创建 IPIP 隧道(tunl0)

# 创建隧道接口(指定本地物理 IP 为 DS 的 ens33 IP)
sudo ip tunnel add tunl0 mode ipip local 192.168.8.20 remote any
sudo ip link set tunl0 up
sudo ip addr add 192.168.8.30/32 dev tunl0

# 验证隧道配置
ip tunnel show tunl0  # 查看隧道状态
ip addr show tunl0    # 查看 VIP 配置

(2)配置 ipvsadm 规则

# 清空旧规则
sudo ipvsadm -C

# 添加 VIP 虚拟服务(TUN 模式用 -i 参数)
sudo ipvsadm -A -t 192.168.8.30:80 -s rr

# 添加 RS 节点(TUN 模式 -i,指定 RS 物理 IP)
sudo ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.21:80 -i
sudo ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.22:80 -i

# 保存规则
sudo ipvsadm -S > /etc/ipvsadm.rules

# 验证规则
sudo ipvsadm -Ln

5.3.3 RS 节点配置隧道 + ARP 屏蔽

# 1. 创建 IPIP 隧道(RS1 用自身 ens33 IP 作为本地 IP)
sudo ip tunnel add tunl0 mode ipip local 192.168.8.21 remote any
sudo ip link set tunl0 up
sudo ip addr add 192.168.8.30/32 dev tunl0

# RS2 节点创建隧道命令(替换本地 IP 为 192.168.8.22)
# sudo ip tunnel add tunl0 mode ipip local 192.168.8.22 remote any
# sudo ip link set tunl0 up
# sudo ip addr add 192.168.8.30/32 dev tunl0

# 2. 禁用 ARP + 关闭反向路径过滤(适配 tunl0 隧道接口)
sudo sysctl -w net.ipv4.conf.all.arp_ignore=1
sudo sysctl -w net.ipv4.conf.all.arp_announce=2
sudo sysctl -w net.ipv4.conf.tunl0.arp_ignore=1
sudo sysctl -w net.ipv4.conf.tunl0.arp_announce=2
sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.tunl0.rp_filter=0
sudo sysctl -w net.ipv4.conf.ens33.rp_filter=0

# 3. 永久配置
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.tunl0.arp_ignore = 1
net.ipv4.conf.tunl0.arp_announce = 2
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.tunl0.rp_filter = 0
net.ipv4.conf.ens33.rp_filter = 0
EOF
sudo sysctl -p

# 4. 验证隧道和 VIP
ip tunnel show tunl0
ip addr show tunl0

5.4 验证

测试客户端访问 VIP(192.168.8.30),验证轮询效果:

for i in {1..5}; do curl http://192.168.8.30; echo -e "\n"; done

预期结果:交替显示 Real Server 1 (192.168.8.21 / 10.0.0.21)Real Server 2 (192.168.8.22 / 10.0.0.22)

六、实验注意事项(共 16 条)

6.1 环境准备注意事项

  1. Ubuntu 22.04 需关闭 ufw 防火墙和 AppArmor,否则会拦截 LVS 转发的数据包;

  2. 所有节点需配置 hosts 解析,避免因 DNS 解析失败导致节点间通信异常;

  3. RS 节点的 nginx 需确认启动并监听 80 端口(netstat -tnlp | grep nginx),否则访问会超时;

  4. 实验前需关闭 swap,避免系统内存交换影响 LVS 转发性能;

  5. 所有节点网卡命名统一为 ens33(外网)、ens34(内网,仅 NAT 模式用),避免因网卡名不一致导致配置失效。

6.2 NAT 模式注意事项

  1. DS 必须配置双网卡(ens33 外网、ens34 内网),且开启 net.ipv4.ip_forward=1,否则无法转发数据包;

  2. RS 节点需禁用外网网卡 ens33,仅启用内网网卡 ens34,避免网络路由冲突;

  3. RS 网关必须指向 DS 内网 IP(10.0.0.1),否则 RS 响应数据包无法回传给客户端;

  4. Ubuntu 22.04 中禁止使用 gateway4 配置网关,需改用 routes 字段,否则 netplan 应用失败。

6.3 DR 模式注意事项

  1. 所有节点的 VIP 必须配置在 lo:0 接口(/32 掩码),不能配置在物理网卡 ens33,否则会触发 ARP 冲突;

  2. RS 节点必须设置 arp_ignore=1arp_announce=2,否则客户端会直接访问 RS 物理 IP 而非 VIP;

  3. 需关闭 ens33 和 lo 接口的反向路径过滤(rp_filter=0),否则 Linux 内核会丢弃「源 IP 与网卡不匹配」的数据包;

  4. DR 模式要求所有节点在同一二层局域网(同一交换机),跨网段会导致 ARP 屏蔽失效。

6.4 TUN 模式注意事项

  1. 必须加载 ipip 内核模块,否则无法创建 tunl0 隧道接口;

  2. RS 节点的隧道 remote 参数需设为 any,而非指定 DS IP,否则无法适配多 DS 场景;

  3. TUN 模式的 VIP 配置在 tunl0 接口,需同步配置该接口的 ARP 屏蔽参数,避免 VIP 冲突。

6.5 通用注意事项

  1. ipvsadm 规则默认重启后丢失,需创建 ipvsadm.service 并保存规则到 /etc/ipvsadm.rules,否则重启 DS 后规则失效;

  2. 实验过程中若修改网络配置,需重新应用 netplan 并验证配置(ip addrip route),避免配置未生效。

七、常见问题排查

7.1 访问 VIP 无响应

  • 排查步骤 1:ipvsadm -Ln 检查 DS 规则是否正确(VIP、RS IP、模式参数是否匹配);

  • 排查步骤 2:systemctl status nginx 检查 RS 节点 nginx 是否运行,curl 127.0.0.1 验证本地访问正常;

  • 排查步骤 3:ping 测试 DS 与 RS 对应网卡 IP 连通性(NAT 模式 ping 内网 IP