IP | Hostname | 备注 |
---|---|---|
192.168.88.80 | rs1 | 真实服务器rs1 |
192.168.88.81 | rs2 | 真实服务器rs2 |
192.168.88.83 | dir | 调度器dir |
. | VIP: 192.168.88.110 | . |
环境说明:firewalld关闭,selinux关闭。
1.安装所需软件包
[root@rs1 ~]# yum -y install net-tools //rs服务器都需
[root@dir ~]# yum -y install ipvsadm keepalived //dir安装
2.rs服务器编辑脚本并运行
[root@rs1 ~]# vi /usr/local/sbin/lvs_dr.sh //rs2同rs1一样
#/bin/bash
vip=192.168.88.110
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
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
[root@rs1 ~]# bash /usr/local/sbin/lvs_dr.sh
3.keepalived配置
[root@dir ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface ens33 //网卡
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.88.110 //VIP
}
}
virtual_server 192.168.88.110 80 {
delay_loop 1 //设置健康检查的时间间隔,单位是秒
lb_algo wrr //设置负载调度算法,这里设置为wrr,即权重轮询算法
lb_kind DR //设置LVS实现负载均衡的机制,有 NAT、TUN和DR三个模式可选
#persistence_timeout 60
//会话保持时间,单位是秒。简单来说就是同一ip60秒内分配到同一rs主机上。
protocol TCP //虚拟服务使用的协议类型
real_server 192.168.88.80 80 {
weight 100 //配置服务节点的权值
TCP_CHECK {
connect_timeout 3 //表示3秒无响应超时
nb_get_retry 3 //表示重试次数
delay before_retry 3 //表示重试间隔
connect_port 80 //检查80端口
}
}
real_server 192.168.88.81 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay before_retry 3
connect_port 80
}
}
}
4.启动keepalived
[root@dir ~]# pkill keepalived
//若是重启keepalived,可使用该命令直接杀掉进程后再启动,以免出现卡进程的现象导致keepalived重启配置未生效。
[root@dir ~]# systemctl start keepalived
5.测试
查看当前连接情况
[root@dir ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.88.110:80 wrr
-> 192.168.88.80:80 Route 100 0 0
-> 192.168.88.81:80 Route 100 0 0
进入网页访问VIP多次F5刷新页面
查看ipvs模块的转发情况统计
[root@dir ~]# ipvsadm -Lnc
IPVS connection entries
pro expire state source virtual destination
TCP 00:01 ESTABLISHED 192.168.88.1:57201 192.168.88.110:80 192.168.88.81:80
TCP 00:01 ESTABLISHED 192.168.88.1:57199 192.168.88.110:80 192.168.88.80:80
TCP 00:01 ESTABLISHED 192.168.88.1:57203 192.168.88.110:80 192.168.88.81:80
TCP 00:01 FIN_WAIT 192.168.88.1:57197 192.168.88.110:80 192.168.88.80:80
TCP 00:03 FIN_WAIT 192.168.88.1:57204 192.168.88.110:80 192.168.88.80:80
TCP 00:01 ESTABLISHED 192.168.88.1:57198 192.168.88.110:80 192.168.88.81:80
TCP 00:01 ESTABLISHED 192.168.88.1:57205 192.168.88.110:80 192.168.88.81:80
TCP 00:01 ESTABLISHED 192.168.88.1:57202 192.168.88.110:80 192.168.88.80:80
转发情况统计中80和81几乎轮询切换