1、环境准备
vip:192.168.171.15
dr1:192.168.171.11
dr2:192.168.171.12
web1:192.168.171.13
web2:192.168.171.14
2、拓扑
3、部署
3.1 dr1(master)部署:
在master上安装配置Keepalived和ipvsadm:
#yum install keepalived ipvsadm -y
修改dr1上Keepalived的配置文件做以下更改:
#vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {router_id Director1 #两边不一样。}vrrp_instance VI_1 {state MASTER #另外一台机器是BACKUPinterface ens33 #心跳网卡virtual_router_id 51 #虚拟路由编号,主备要一致priority 150 #优先级advert_int 1 #检查间隔,单位秒authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.171.15/24 dev ens33 #VIP和工作端口}}virtual_server 192.168.171.15 80 { #LVS 配置,VIPdelay_loop 3 #服务论询的时间间隔,#每隔3秒检查一次real_server状态lb_algo rr #LVS 调度算法lb_kind DR #LVS 集群模式protocol TCPreal_server 192.168.171.13 80 {weight 1TCP_CHECK {connect_timeout 3 #健康检查方式,连接超时时间}}real_server 192.168.171.14 80 {weight 1TCP_CHECK {connect_timeout 3}}}
3.2 dr2(BACKUP)部署
安装keepalived和ipvsadm:
#yum install keepalived ipvsadm -y
拷贝master上的keepalived.conf到backup上
#scp 192.168.171.11:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
修改配置文件:
#vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {router_id Director2 #两边不一样。}vrrp_instance VI_1 {state BACKUP #另外一台机器是BACKUPinterface ens33 #心跳网卡virtual_router_id 51 #虚拟路由编号,主备要一致priority 149 #优先级advert_int 1 #检查间隔,单位秒authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.171.15/24 dev ens33 #VIP和工作端口}}virtual_server 192.168.171.15 80 { #LVS 配置,VIPdelay_loop 3 #服务论询的时间间隔,#每隔3秒检查一次real_server状态lb_algo rr #LVS 调度算法lb_kind DR #LVS 集群模式protocol TCPreal_server 192.168.171.13 80 {weight 1TCP_CHECK {connect_timeout 3 #健康检查方式,连接超时时间}}real_server 192.168.171.14 80 {weight 1TCP_CHECK {connect_timeout 3}}}
3.3 启动dr1和dr2上面的keepalived
#systemctl enable keepalived
#systemctl start keepalived
重启主机
#reboot
3.4 部署web环境(web1 、web2配置相同)
安装web测试站点:
#yum install -y httpd && systemctl start httpd && systemctl enable httpd
检查httpd服务是否启动:
#netstat -antp | grep httpd
自定义web主页,以便观察负载均衡结果:
#vim /usr/share/httpd/noindex/index.html
配置虚拟地址:
#cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}#vim /etc/sysconfig/network-scripts/ifcfg-lo:0DEVICE=lo:0IPADDR=192.168.171.15NETMASK=255.255.255.255ONBOOT=yes
配置路由:
#vim /etc/rc.local/sbin/route add host 192.168.171.15 dev lo:0
配置ARP(忽略arp请求 ,但可以回复):
#vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.default.arp_ignore = 1net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2
重启两台web主机:
#reboot
4、测试、验证
观察lvs路由条目(master节点上面):
#ipvsadm -L
观察vip地址是否在master机器上:
#ip a
客户端访问测试:
curl http://192.168.171.15
关闭master上的keepalived服务,再次访问vip,这是vip会在BACKUP上面(可以通过在dr2主机上面通过ip a 查看),再将master节点上面的keepalived启动,这是vip又回到master节点上面
关闭web1站点服务,再次访问VIP,这是访问的web资源就是web2的资源
至此,keepalived+lvs的高可用集群就部署完毕了。