LVS+Keepalived实现高可用负载均衡(三)

在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。
此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。
通过其反向代理的能力能够轻松实现负载均衡,
当有服务出现异常,也能够自动剔除。但是负载均衡服务自身也可能出现故障,
因此需要引入其他的软件来实现负载均衡服务的高可用。
介绍了一种基于 LVS+Keepalived 的方式,来实现高可用 Web 集群。

 

1、keepalived是什么

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

2、keepalived工作原理

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

3、Keepalived模块

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

4、keepalived的配置文件

keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

总结:Keepalived可以配合其他一起使用,实现服务器之间的相互转换,当客户端访问服务器的虚拟ip地址时,即使一台服务器出现故障,Keepalived可以立马切换至另一台服务器,避免单点故障的产生!在实际工作环境中也很有用处!

机器

192.168.64.135 前端调度器+keepalived

192.168.64.136 真实服务器

192.168.64.140 真实服务器

192.168.64.137 用户访问端

 

开始

135安装keepalived

yum -y install keepalived

rpm  -qc keepalived

命令执行结果
/etc/keepalived/keepalived.conf
/etc/sysconfig/keepalived

 

vim /etc/keepalived/keepalived.conf

点击查看代码
vrrp_instance VI_1 {
    state MASTER   # 两个 DS,一个为 MASTER 一个为 BACKUP
    interface ens32 # 我这边是ens32 可通过 ip -a 查看
    virtual_router_id 51 # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样
    priority 100  # 优先级值设定:MASTER 要比 BACKUP 的值大
    advert_int 1 
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.64.200 # VIP,可配置多个
    }
}

virtual_server 192.168.64.200 80 {
    delay_loop 6             #服务健康检查周期,单位是秒
    lb_algo wrr                 #调度算法
    lb_kind DR                 #模式
    nat_mask 255.255.255.0
    persistence_timeout 5   #回话保持时间,单位是秒
    protocol TCP             #TCP协议转发
#添加后端realserver
#相当于 ipvsadm -a -t 192.168.64.200:80 -r 192.168.64.136:80 -w 1
    real_server 192.168.64.136 80  {    #realserver的真实IP
        weight 1                      #权重
        #健康检查
        TCP_CHECK {
            connect_timeout 8         #超时时间
            nb_get_retry 3            #重试次数
            delay_before_retry 3      #重试间隔
            connect_port 80           #检查realserver的80端口,如果80端口没监听,就会从集群中剔除
        }
    }
    real_server 192.168.64.140 80  {
        weight 1
        TCP_CHECK {
           connect_timeout 8
           nb_get_retry 3
           delay_before_retry 3
           connect_port 80
        }
    }
}

 

LVS+Keepalived实现高可用负载均衡(三)

上一篇:微信 自定义菜单创建接口


下一篇:基于微信的考勤