1 概述

LVS是linux内核模块,用于4层的负载均衡,它有多个工作模式,例如NAT模式、DR模式。
DR模式的数据流是这样的:

client --->  Director Server(即LVS服务器,带VIP) --->  Real Server(后端服务器)  --->  client

本文以华为云ECS为环境,部署DR模式的LVS。


2 环境

在华为云购买三台ECS,三台ECS均位于同一个子网中,OS是Centos 7.9,在该子网中申请一个虚拟IP作为LVS的VIP。

VIP:10.0.13.104
服务器1,Director Server:10.0.14.179
服务器2,Real Server:10.0.29.2,部署一个nginx
服务器3,客户端:10.0.0.149

3 部署

3.1 Director Server的部署

Director Server其实是不需要设置 /proc/sys/net/ipv4/ip_forward为1。
在Director Server上curl自己的VIP:端口,是不通的。

3.1.1 申请华为云虚拟IP

在华为云子网中申请一个虚拟IP(例如指定为10.0.13.104),并绑定至ECS实例。
此华为云虚拟IP是作为LVS的VIP。

操作文档请参考官方:

https://support.huaweicloud.com/usermanual-ecs/ecs_03_0506.html

在这里插入图片描述


3.1.2 将华为云虚拟IP挂载到服务器1(10.0.14.179)的网卡上

登录服务器1,执行如下命令:

export VIP=10.0.13.104
nmcli connection modify "System eth0" +ipv4.addresses $VIP
nmcli connection up "System eth0"

详细说明请参考官方:

https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0067802474.html

在这里插入图片描述

3.1.3 服务器1(10.0.14.179)安装LVS用户态用具

工具用于下发LVS规则到内核中。

yum install -y ipvsadm

3.1.4 服务器1(10.0.14.179)设置LVS规则

export VIP=10.0.13.104
export RS=10.0.29.2

ipvsadm --set 30 5 60
ipvsadm -A -t $VIP:80 -s rr
ipvsadm -a -t $VIP:80 -r $RS:80 -g
# -g代表DR模式

在这里插入图片描述


3.2 Real Server的部署

3.2.1 在服务器2(10.0.29.2)安装nginx

yum install nginx -y
systemctl start nginx

3.2.2 其他配置

抑制ARP响应,将VIP设置到lo网卡上。这些操作很重要,否则最终网络不会通。

export VIP=10.0.13.104

# 抑制ARP响应
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

# 将VIP设置到lo网卡上
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up

4 测试

登录服务器3(10.0.0.149),执行如下命令:

export VIP=10.0.13.104
curl -I $VIP:80

在这里插入图片描述

5 小结

在云上ECS搭建LVS的文章比较少,通过在华为云ECS上搭建LVS,希望对云上用户有所帮助。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐