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
相关推荐
Decay__4 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子6 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
万联WANFLOW6 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
Decay__10 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
江华森11 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼11 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by2099912 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina13 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼13 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测