1. 环境规划:
主机名 | 主机地址 | 角色 |
node1 | 192.168.188.11(外网地址) 192.168.255.137(内网地址) | LVS |
node2 | 192.168.255.12(内网地址) | RS1 |
node3 | 192.168.255.13(内网地址) | RS2 |
node4 | 192.168.188.14 | 测试 |
LVS的配置按照上一篇的LVS-NAT模式配置。
2. 安装第三方软件ldirectord:
[root@node1 ~]# yum localinstall ldirectord-4.1.1-3.40.el7.noarch.rpm -y
3. 查看安装ldirectord后产生的文件:
[root@node1 ~]# rpm -ql ldirectord
/etc/ha.d #主配置文件目录
/etc/ha.d/conf
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/logrotate.d/ldirectord
/etc/rc.d/init.d/ldirectord
/run/ldirectord
/usr/lib/systemd/system/ldirectord.service # 服务
/usr/lib/tmpfiles.d/ldirectord.conf #配置模版
/usr/sbin/ldirectord #主程序,Perl实现
/usr/share/doc/ldirectord-4.1.1
/usr/share/doc/ldirectord-4.1.1/ldirectord.cf #主配置文件模板文件
/usr/share/man/man8/ldirectord.8.gz
4. 配置ldirectord的主配置文件:
[root@node1 ~]# vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
quiescent=no
logfile="/var/log/ldirectord.log"
virtual=192.168.188.11:80 ##虚拟ip地址
real=192.168.255.12:80 masq(表示NAT模式) 2(表示权重为2) ##真实服务器地址
real=192.168.255.13:80 masq 1
fallback=127.0.0.1:80 ##当真实服务器全部宕机时,访问的地址
service=http
scheduler=wrr ##负载均衡算法
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
5. 配置web页面:
[root@node1 ~]# echo "服务器维护中。。。" > /var/www/html/index.html
[root@node2 ~]# echo "`hostname -I`" > /var/www/html/index.html
[root@node3 ~]# echo "`hostname -I`" > /var/www/html/index.html
6. 启动服务:
[root@node1 ~]# systemctl start ldirectord.service
7. 持续监控ipvsadm配置变化:
[root@node1 ~]# watch ipvadm -ln
8. 测试主机检测负载均衡:
[root@node4 ~]# for ((i=1;i<=10;i++)); do curl 192.168.188.11; done
192.168.255.12
192.168.255.12
192.168.255.13
192.168.255.12
192.168.255.12
192.168.255.13
192.168.255.12
192.168.255.12
192.168.255.13
192.168.255.12
9. 检测健康检查:
##停掉node2的http服务
[root@node2 ~]# systemctl stop httpd.service
此时发现故障的node2已经从集群中剔除掉了。
##停掉node3的http服务
[root@node3 ~]# systemctl stop httpd.service
此时发现当后端两台服务器都故障则启动了127.0.0.1服务器。
##再次访问测试
[root@node4 ~]# for ((i=1;i<=10;i++)); do curl 192.168.188.11; done
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。
服务器维护中。。。