一、 负载均衡-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 服务器 |
网络说明:
- 所有主机:第一块网卡名为 ens33,第二块网卡名为xx
- 默认第一块网卡模式为nat,第二块网卡模式为hostonly
- 网关设置: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