环境准备:
三台机器:
RS1节点:192.168.192.137
RS2节点:192.168.192.138
LVS:192.168.192.139
LVS-DR模式配置
-
首先对三台机器进行时间同步配置(集群中机器的时间差最好不要超过1s)及关闭防火墙、selinux
yum install ntpdate -y ntpdate cn.pool.ntp.org hwclock --systohc systemctl stop firewalld.service setenforce 0 #若是觉得直接关闭不安全可以进行防火墙配置 #开启防火墙并配置防火墙规则 systemctl start firewalld firewall-cmd --permanent --add-port=80/tcp firewall-cmd --set-default-zone=trusted firewall-cmd --reload
-
LVS配置
- 安装LVS
[root@dir ~]# yum install ipvsadm.x86_64 -y
- 设置LVS的VIP
[root@dir ~]# ifconfig eth0:0 192.168.192.123 netmask 255.255.255.255 [root@dir ~]# route add -host 192.168.192.122 dev eth0:0 [root@dir ~]# ip a #查看是否配置成功
- 配置DR的负载均衡服务
[root@dir ~]# ipvsadm -At 192.168.192.123:80 -s rr #添加虚拟服务指定VIP [root@dir ~]# ipvsadm -at 192.168.192.123:80 -r 192.168.192.137:80 -g #针对虚拟服务添加RS节点 [root@dir ~]# ipvsadm -at 192.168.192.123:80 -r 192.168.192.138:80 -g [root@dir ~]# ipvsadm -Ln #查看配置信息
相关参数说明:
[root@dir ~]# ipvsadm -help
-A 添加虚拟服务器
-t 设置群集地址(VIP,Virtual IP)
-s 指定负载调度算法
-a 添加真实服务器
-d 删除真实服务器
-r 指定真实服务器(Real Server)的地址
-m 使用NAT模式
-g 指定此LVS的工作模式为-g
-i 使用TUN模式
-w 为节点服务器设置权重,默认为1
- 安装LVS
-
RS节点配置
-
添加lo端口的VIP&路由
#RS1节点 [root@ser01 ~]# ifconfig lo:0 192.168.192.123 netmask 255.255.255.255 [root@ser01 ~]# route add -host 192.168.192.123 dev lo:0 [root@ser01 ~]# ip a #RS2节点 [root@ser02 ~]# ifconfig lo:0 192.168.192.123 netmask 255.255.255.255 [root@ser02 ~]# route add -host 192.168.192.123 dev lo:0 [root@ser02 ~]# ip a
-
调整内核参数,关闭arp响应
#RS1节点 [root@ser01 ~]# vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 [root@ser01 ~]# sysctl -p #立即生效 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 #RS2节点 [root@ser02 ~]# vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 [root@ser02 ~]# sysctl -p #立即生效 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
-
开启80端口
#RS1节点 [root@ser01 ~]# yum install httpd.x86_64 -y [root@ser01 ~]# echo "web 137" > /var/www/html/index.html #为了区分LVS使用那个节点 [root@ser01 ~]# systemctl start httpd.service #RS1节点 [root@ser02 ~]# yum install httpd.x86_64 -y [root@ser02 ~]# echo "web 137" > /var/www/html/index.html [root@ser02 ~]# systemctl start httpd.service
-
-
测试
重新开一个机器,避免发生冲突[root@bogon ~]# yum install elinks -y [root@bogon ~]# elinks -dump http://192.168.192.137 web 137 [root@bogon ~]# elinks -dump http://192.168.192.138 web 138 [root@bogon ~]# while true; do elinks -dump http://192.168.192.123;sleep 3;done web 137 web 138 web 137 web 138 web 137 web 138 web 137 web 138 web 137 web 138 #可以停掉137或138的httpd服务,或者全都停掉进行测试