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
相关推荐
爱喝水的鱼丶7 小时前
SAP-ABAP:接口与报表场景专项优化:RFC/ODATA 接口、ALV 报表的性能提升方案
运维·性能优化·接口·sap·abap·rfc·经验交流
画中有画8 小时前
自动化脚本开发最佳实践
运维·自动化
江南风月11 小时前
如何使用WGCLOUD实现智能运维
运维·zabbix·运维开发·prometheus
xiaoxiangsiyan11 小时前
HCIA 网络技术基础核心模块详解
运维·网络·网络协议·tcp/ip·运维开发·网络基础
MuMuMu122313 小时前
工业园区 VOCs 绿岛集中治理:越华环保集团项目技术方案与工程实践
大数据·运维
sxstj14 小时前
Ubuntu 完整安装并启用 Flatpak 教程
linux·运维·ubuntu
国际云,接待14 小时前
Nginx 后面接负载均衡,502/504 到底该先查哪里?
运维·nginx·负载均衡
刘某的Cloud15 小时前
Galera Cluster部署 mariadb 节点down机,log sequence number恢复
linux·运维·数据库·负载均衡·mariadb·集群·高可用
小此方15 小时前
Re:Linux系统篇(五十四)线程篇 · 七:互斥锁的底层实现原理:从硬件上下文、原子交换指令(Swap)到并发封装实战
linux·运维·驱动开发
程序员老陆17 小时前
说一说FFmpeg6在Linux平台的编译
linux·运维·服务器·ffmpeg