20260423 一、 负载均衡-LVS 全解析

一、 负载均衡-LVS 全解析

主机名 IP地址 网关 DNS 服务器角色
client2.jiang.cloud 10.1.1.21(vmnet1) 10.1.1.10 223.5.5.5 客户端
client1.jiang.cloud 10.1.8.21(vmnet8) 10.1.8.10 223.5.5.5 客户端
lvs.jiang.cloud 10.1.1.10(vmnet1) 10.1.8.10(vmnet8) 无网关 10.1.8.2 无DNS 223.5.5.5 LVS 服务器
web1.jiang.cloud 10.1.8.11(vmnet8) 10.1.8.10 223.5.5.5 Web 服务器
web2.jiang.cloud 10.1.8.12(vmnet8) 10.1.8.10 223.5.5.5 Web 服务器
web3.jiang.cloud 10.1.8.13(vmnet8) 10.1.8.10 223.5.5.5 Web 服务器

网络说明:

  1. 所有主机:第一块网卡名为 ens33,第二块网卡名为xx
  2. 默认第一块网卡模式为nat,第二块网卡模式为hostonly
  3. 网关设置:10.1.1.0/24 网段网关为10.1.1.10,10.1.8.0/24 网段网关为10.1.8.10

**注意:**本次实验的网关指向 LVS 服务器。

1.1 配置路由

注意:所有web都要执行以下命令。

bash 复制代码
[root@web1-3 ~ 10:58:03]# yum install -y nginx

# 部署 web
[root@web1 ~ 11:19:11]# echo Welcome to $(hostname) > /usr/share/nginx/html/index.html
[root@web1 ~ 11:19:55]# systemctl enable nginx.service --now
# 访问后端 nginx
[root@client1 ~ 10:58:03]# curl 10.1.8.11
Welcome to web1.jiang.cloud
[root@client1 ~ 11:21:13]# curl 10.1.8.12
Welcome to web2.jiang.cloud
[root@client1 ~ 11:21:16]# curl 10.1.8.13
Welcome to web3.jiang.cloud

1.2 配置 LVS

bash 复制代码
# 安装 ipvsadm
[root@lvs ~ 10:58:03]# yum install -y ipvsadm

# ipvsadm 服务启动的时候,从该文件中读取ipvs规则
[root@lvs ~ 11:21:44]# systemctl enable ipvsadm.service --now

# 创建轮询负载
## 增加一个tcp模式虚拟IP,调度模式:轮询
[root@lvs ~ 11:32:57]# ipvsadm -E -t 10.1.1.10:80 -s rr

# 未虚拟IP增加后端真实主机,模式masquerade(NAT)
ipvsadm -a -t 10.1.1.10:80 -r 10.1.8.11 -m
ipvsadm -a -t 10.1.1.10:80 -r 10.1.8.12 -m
ipvsadm -a -t 10.1.1.10:80 -r 10.1.8.13 -m

# 保存转发规则到文件中
ipvsadm-save -n > /etc/sysconfig/ipvsadm

# 核实配置是否生效
[root@lvs ~ 11:34:49]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.1.10:80 wrr
  -> 10.1.8.11:80                 Masq    1      0          90        
  -> 10.1.8.12:80                 Masq    2      0          90        
  -> 10.1.8.13:80                 Masq    3      0          90  
  
  # 多次访问验证 
  [root@client2 ~ 11:28:47]# for i in {1..90};do curl -s 10.1.1.10 ;done|sort|uniq -c
     30 Welcome to web1.jiang.cloud
     30 Welcome to web2.jiang.cloud
     30 Welcome to web3.jiang.cloud

负载均衡模式更改为加权轮询。

bash 复制代码
# 修改 调度模式为:带权重的轮询
[root@lvs ~ 11:32:57]# ipvsadm -E -t 10.1.1.10:80 -s wrr
# 设置权重为2
[root@lvs ~ 11:34:20]# ipvsadm -e -t 10.1.1.10:80 -r 10.1.8.12 -m -w 2
# 设置权重为3
[root@lvs ~ 11:34:38]# ipvsadm -e -t 10.1.1.10:80 -r 10.1.8.13 -m -w 3
[root@lvs ~ 11:34:49]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.1.10:80 wrr
  -> 10.1.8.11:80                 Masq    1      0          90        
  -> 10.1.8.12:80                 Masq    2      0          90        
  -> 10.1.8.13:80                 Masq    3      0          90       

访问验证

bash 复制代码
[root@client2 ~ 11:33:18]# for i in {1..90};do curl -s 10.1.1.10 ;done|sort|uniq -c
     15 Welcome to web1.jiang.cloud
     30 Welcome to web2.jiang.cloud
     45 Welcome to web3.jiang.cloud
相关推荐
C+-C资深大佬1 小时前
GitHub Actions 自动化运维实战:从零到一构建高效 CI/CD 流水线
运维·自动化·github
一叶龙洲10 小时前
win11与Ubuntu之间同步配置、插件
linux·运维·ubuntu
CHANG_THE_WORLD11 小时前
12.总结:深入理解 Linux I/O 多路复用:select、poll、epoll 全解析
linux·运维·服务器
风曦Kisaki11 小时前
# Linux笔记:操作系统优化与资源管理
linux·运维·服务器·笔记
zhangrelay13 小时前
笔记本轻量高品质延寿工具完整分系统清单
运维·笔记·学习
RisunJan15 小时前
Linux命令-screen(终端复用器)
linux·运维
啊哦11115 小时前
安装VMware Workstation
linux·运维·服务器
持敬chijing16 小时前
Linux基础命令与目录命令
linux·运维·服务器
小张成长计划..16 小时前
【Linux】12:进程状态
linux·运维·服务器
小秋求学记.19 小时前
Linux_Ubuntu的相关问题
linux·运维·ubuntu