华为云ECS部署DR模式的LVS
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.2ipvsadm --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,希望对云上用户有所帮助。