负载均衡之keepalived

database

DR实验存在的隐患

  1. DR可能会挂,单点故障
  2. RS可能会挂

解决方案:

  • 解决单点故障

    • 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上
    • 主主

  • 解决RS会挂的问题

    给RS发送请求,如果收到200 ok回复则说明RS正常

keepalived

keepalived就是实现了上述解决方法的工具,检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

主要用途:

  • 高可用:监控主机,主动替换备用机
  • RS的健康检测

只需要给主机DR和备用机装keepalived监控DR,并且向RS发送请求检测RS。

keepalived的使用:

  1. 安装

    yum install keepalived ipvsadm -y

  2. 备份和修改keepalived配置文件

    DR配置文件:

    cp keepalive.conf keepalived.conf.bak

    cat /etc/keepalived.conf

    global_defs {

      notification_email {  #设置报警邮件地址,可多行每行一个。

      xxxxxxx@qq.com

       }

      notification_email_from keepalived@localhost  #设置邮件的发送地址

      smtp_server 127.0.0.1                         #设置SMTP server地址

      smtp_connect_timeout 30                       #设置SMTP 超时时间

      router_id LVS_DEVEL                           #运行keepalived机器的一个标识

    }

    vrrp_instance VI_1 {                      #定义一个vrrp实例,不同实例的实例编号不一样。

       state MASTER        #定义在keepalived的角色MASTER表示为主服务器,BACKUP为备服务器。

       interface eth0      #指定HA检测的网络接口

       virtual_router_id 50     #虚拟路由标示,同一个实例里的路由标示相同,且唯一。MASTER和BACKUP的路由标识一样,且唯一。

       priority 100        #定义此服务器在此虚拟路由器中的优先级,优先级大权限高

       advert_int 1        #检测时间间隔

       authentication {    #设置验证类型和密码,主从的密码必须相同,要不两者不通讯。

           auth_type PASS

           auth_pass 1111

       }

       virtual_ipaddress {     #设置虚拟IP地址,可以设置多个虚拟IP地址。

           192.168.233.100/24 dev ens33 label ens33:3

       }

    }

    //配置DR主机lvs,代替使用ipvsadm配置lvs

    virtual_server 192.168.233.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR //模式,NAT,DR,TUN

    nat_mask 255.255.255.0 //子网掩码

    persistence_timeout 0 //

    protocol TCP

    real_server 192.168.150.12 80 {//负载机配置

    weight 1

    HTTP_GET {//对后端机进行健康检查的配置

    url {

    path /

    status_code 200

    }

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

    }

    }

    //配置RS

    real_server 192.168.233.129 80 {

    weight 1

    HTTP_GET {

    url {

    path /

    status_code 200

    }

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

    }

    }

    备用DR配置:

    global_defs {

      notification_email {

      xxxxxx@qq.com

       }

      notification_email_from keepalive@localhost

      smtp_server 127.0.0.1

      smtp_connect_timeout 30

      router_id LVS_DEVEL

    }

    vrrp_instance VI_1 {

       state BACKUP

       interface eth0

       virtual_router_id 51

       priority 50

       advert_int 1

       authentication {

           auth_type PASS

           auth_pass 1111

       }

       virtual_ipaddress {

           192.168.233.100

       }

    }

    //配置DR主机lvs,代替使用ipvsadm配置lvs

    virtual_server 192.168.233.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR //模式,NAT,DR,TUN

    nat_mask 255.255.255.0 //子网掩码

    persistence_timeout 0 //

    protocol TCP

    real_server 192.168.150.12 80 {//负载机配置

    weight 1

    HTTP_GET {//对后端机进行健康检查的配置

    url {

    path /

    status_code 200

    }

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

    }

    }

    //配置RS

    real_server 192.168.233.129 80 {

    weight 1

    HTTP_GET {

    url {

    path /

    status_code 200

    }

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

    }

    }

  3. 启动keepalived服务

    service keepalived start

最后,如果keepalived进程挂掉呢?

使用zookper集群解决这个问题。

以上是 负载均衡之keepalived 的全部内容, 来源链接: utcz.com/z/536568.html

回到顶部