美文网首页
lvs + keepalived

lvs + keepalived

作者: 一剑仙人跪_ | 来源:发表于2019-08-01 20:27 被阅读0次

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

keepalived工作原理 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协 议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个 组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路 由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举 一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护 以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的

项目环境: VS/DR

 
 Client                                         192.168.188.139
 
 Director分发器      主192.168.188.136         备192.168.188.128       VIP    192.168.188.110
 
 Real Server         192.168.188.130           192.168.188.131        VIP lo192.168.188.110/32

实施步骤:

1. 主/备调度器安装软件

[root@lvs-keepalived-master ~]# yum -y install ipvsadm keepalived 
[root@lvs-keepalived-slave ~]# yum -y install ipvsadm keepalived 

2. Keepalived

lvs-master
[root@ha-proxy-master ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lvs-master
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33               #VIP绑定接口  
    virtual_router_id 80          #VRID 同一组集群,主备一致   
    priority 100                  #本节点优先级,辅助改为50  
    advert_int 1                  #检查间隔,默认为1s 
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.188.110/24
    }
}

virtual_server 192.168.188.110 80 {         #LVS配置 
    delay_loop 3
    lb_algo rr                             #LVS调度算法         
    lb_kind DR                             #LVS集群模式(路由模式) 
    nat_mask 255.255.255.0
 #   persistence_timeout 20                #持久性连接    
    protocol TCP                           #健康检查使用的协议 

    real_server 192.168.188.130 80 {
        weight 1
        inhibit_on_failure                  #当该节点失败时,把权重设置为0,而不是从IPVS中删除 
        TCP_CHECK {                         #健康检查      
             connect_port 80                #检查的端口 
             connect_timeout 3              #连接超时的时间 
          }
        }
    real_server 192.168.188.131 80 {
        weight 1
        inhibit_on_failure
        TCP_CHECK {
             connect_port 80
            connect_timeout 3
         }
    }
}

[root@lvs-keepalived-slave ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lvs-backup
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    nopreempt        #不抢占资源  
    virtual_router_id 80
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.188.110/24
    }
}

virtual_server 192.168.188.110 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
 #   persistence_timeout 20
    protocol TCP

    real_server 192.168.188.130 80 {
        weight 1
        inhibit_on_failure
        TCP_CHECK {                    
             connect_port 80            
             connect_timeout 3       
          } 
        }
    real_server 192.168.188.131 80 {
        weight 1
        inhibit_on_failure
        TCP_CHECK {                               
             connect_port 80                          
             connect_timeout 3  
         }
    }
}

3. 启动KeepAlived(主备均启动)

[root@lvs-keepalived-master ~]# systemctl start keepalived 
[root@lvs-keepalived-master ~]# systemctl enable keepalived
[root@lvs-keepalived-master ~]# 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.188.110:80 rr
  -> 192.168.188.130:80           Route   1      2          0         
  -> 192.168.188.131:80           Route   1      0          0   

4. 所有RS配置(nginx1,nginx2)

配置好网站服务器,测试所有RS

[root@test-nginx1 ~]# yum install -y nginx 
[root@test-nginx2 ~]# yum install -y nginx 
[root@test-nginx1 ~]# echo "ip addr add dev lo 192.168.188.110/32" >> /etc/rc.local #记得重启服务器
[root@test-nginx1 ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf 
[root@test-nginx1 ~]# sysctl -p
[root@test-nginx1 ~]# echo "web1..." >> /usr/share/nginx/html/index.html 
[root@test-nginx1 ~]# systemctl start nginx 
[root@test-nginx1 ~]# chmod +x /etc/rc.local

测试·
elinks -dump http://192.168.188.110

相关文章

网友评论

      本文标题:lvs + keepalived

      本文链接:https://www.haomeiwen.com/subject/tyzcdctx.html