一、LVS DR模式搭建
三台机器
分发器,也叫调度器(简写为dir)
davery :1.101
rs1 davery01:1.106
rs2 davery02:11.107
vip 133.200
dir上编写脚本 vim /usr/local/sbin/lvs_dr.sh //内容如下
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.1.200
rs1=192.168.1.106
rs2=192.168.1.107
#注意这里的网卡名字
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C #清空规则
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
dir上编辑:
[root@davery ~]# vim /usr/local/sbin/lvs_dr.sh
[root@davery ~]# sh /usr/local/sbin/lvs_dr.sh
rs上编辑:
两台rs上也编写脚本 vim /usr/local/sbin/lvs_rs.sh//内容如下
#/bin/bash
vip=192.168.1.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
分别在dir上和两个rs上执行这些脚本
vim /usr/local/sbin/lvs_rs.sh
[root@davery01 ~]# sh /usr/local/sbin/lvs_rs.sh
[root@davery02 ~]# vim /usr/local/sbin/lvs_rs.sh
route -u 就可查看到绑定的vip了
ip add
dir上执行脚本sh /usr/local/sbin/lvs_dr.sh后同样会产生一个公网(内网)vip
测试:浏览器访问192.168.1.200,刷新后就会看到网页在跳转了
查看它的访问量
ipvsadm -ln
二、keepalived + LVS
完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived
keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本
三台机器分别为:
dir(安装keepalived)1.101
rs1 1.106
rs2 1.107
vip 1.200
编辑keepalived配置文件
vim /etc/keepalived/keepalived.conf//
内容请到https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/lvs_keepalived.conf 获取
需要更改里面的ip信息
执行ipvsadm -C
编辑配置文件:
[root@davery ~]# vim /etc/keepalived/keepalived.conf
启动keepalived
[root@davery ~]# systemctl start keepalived
[root@davery ~]#
查看进程
关闭keepalived就没有服务了
再次开启,real server再次执行脚本sh /usr/local/sbin/lvs_rs.sh就有服务
关闭其中一台real server就会少一个服务
浏览器访问