Keepalived+LVS部署

目录

一、环境准备

二、实验拓扑

三、部署LVS DR环境

四、LVS服务器配置keepalived

1、安装keepalived

2、修改lvs1服务器keepalived配置

3、修改lvs2服务器keepalived配置

五、客户端测试

1、负责均衡测试

2、LVS服务器高可用测试


一、环境准备

准备4台centos服务器和一台客户端

服务器 主机名 IP 备注
客户端 / 192.168.2.5 /
LVS服务器1 lvs1

DIP:[ens33]192.168.2.10/24

VIP:[ens33]192.168.2.100/24

关闭selinux和firewalld
LVS服务器2 lvs2

DIP:[ens33]192.168.2.11/24

VIP:[ens33]192.168.2.100/24

关闭selinux和firewalld
Web服务器1 web1

DIP:[ens33]192.168.2.20/24

VIP:[ens33]192.168.2.100/32

关闭selinux和firewalld
Web服务器2 web2

DIP:[ens33]192.168.2.20/24

VIP:[ens33]192.168.2.100/32

关闭selinux和firewalld

二、实验拓扑

Keepalived+LVS部署_第1张图片

 实验目标:在LVS-DR模式的基础上,使用keepalived对LVS服务器的VIP实现高可用。

三、部署LVS DR环境

参考:LVS-DR模式部署_桂安俊@kylinOS的博客-CSDN博客

其中将LVS服务器环境复制一份,建立2台主备LVS服务器,并将LVS服务器的VIP配置删除,下面用keepalived实现LVS服务器的VIP,并实现VIP高可用。

四、LVS服务器配置keepalived

1、安装keepalived

#lvs1和lvs2服务器都执行
yum install keepalived -y

systemctl enable keepalived

ipvsadm -C   #清空lvs规则

2、修改lvs1服务器keepalived配置

vim /etc/keepalived/keepalived.conf   #内容如下
! Configuration File for keepalived

global_defs {
   router_id lvs1   #设置路由ID,每个节点设置不一样  
   vrrp_iptables    #禁止设置防火墙规则,默认会自动添加防火墙拒绝所有
}

vrrp_instance VI_1 {
    state MASTER       #主服务器Master
    interface ens33       #网卡名
    virtual_router_id 51  #主辅VRID号必须一致
    priority 100            #服务器优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.100   #虚拟IP
    }
}

#LVS规则配置
virtual_server 192.168.2.100 80 {    #LVS VIP和端口
    lb_algo rr        #设置LVS调度算法为rr,轮询
    lb_kind DR        #设置LVS模式为DR模式
    #persistence_timeout 50    #开启后,客户端在指定时间(单位秒)内始终访问相同服务器,这里为了实验效果先关闭,生产环境应开启
    protocol TCP      #设置TCP协议

    real_server 192.168.2.20 80 {    #设置后端web服务器真实IP和端口
        weight 1                     #设置权重为1
	TCP_CHECK {                  #对后台real_server做健康检查,比如这里检查192.168.2.20的80端口是否正常
            connect_timeout 3        #每次连接超时时间为3秒
            nb_get_retry 3           #如果连不上,就试3次
            delay_before_retry 3     #每隔3秒检查一次
        }
    }
    real_server 192.168.2.30 80 {    #设置后端web服务器真实IP和端口
        weight 1                     #设置权重为1
	TCP_CHECK {                  #对后台real_server做健康检查
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
systemctl restart keepalived

ip a s ens33  #查看vip

Keepalived+LVS部署_第2张图片

ipvsadm -Ln  #查看lvs集群

Keepalived+LVS部署_第3张图片

3、修改lvs2服务器keepalived配置

vim /etc/keepalived/keepalived.conf   #内容如下
! Configuration File for keepalived

global_defs {
   router_id lvs2   #修改,与lvs1不同 
   vrrp_iptables    
}

vrrp_instance VI_1 {
    state BACKUP   #设置为backup       
    interface ens33    
    virtual_router_id 51  #和lvs1保持一致
    priority 50           #备机优先级比主master低一点         
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.100 
    }
}

virtual_server 192.168.2.100 80 {   
    lb_algo rr    
    lb_kind DR    
    #persistence_timeout 50  
    protocol TCP    

    real_server 192.168.2.20 80 {   
        weight 1                
	TCP_CHECK {          
            connect_timeout 3
            nb_get_retry 3   
            delay_before_retry 3  
        }
    }
    real_server 192.168.2.30 80 {
        weight 1                
	TCP_CHECK {            
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
systemctl restart keepalived

ipvsadm -Ln

Keepalived+LVS部署_第4张图片

五、客户端测试

1、负责均衡测试

Keepalived+LVS部署_第5张图片

2、LVS服务器高可用测试

将192.168.2.100所在服务器关机,查看VIP漂移到备机,并正常提供LVS负载均衡服务

Keepalived+LVS部署_第6张图片

注1:lvs也是自带健康检查的,如果web1宕机,lvs集群会自动剔除web1,当web1恢复正常后,lvs会将web1重新加入lvs集群。

注2:如果使用客户端浏览器测试轮询,应使用火狐浏览器(ctrl+f5强制刷新),使用谷歌和360浏览器测试发现不会轮询,始终访问的一个IP。

你可能感兴趣的:(负载均衡LB,高可用HA,负载均衡,lvs-DR,keepalived,lvs+keepalived,高可用)