zoukankan      html  css  js  c++  java
  • keepliave


    keepalived的主要功能
     1. healthcheck:
               检查后端节点是否正常工作
               如果发现后端节点异常,就将该异常节点从调度规则中删除;
               如果发现后端的异常节点恢复正常了,就将该节点重新加入到调度规则中;
    2. failover
                     是对调度器的主节点做健康检测。
                      将备用节点升级为主节点
                       接管主节点上的资源(vip、lvs规则)
    3.keepalived实现故障切换的原理
                         1.keepalived是基于vrrp写于实现的故障切换
                          2.正常情况下,主节点会每隔一段时间向备节点发送一个心跳信息,这个就是告诉备节点自己正常。
                          3.当主节点发生故障,那么备节点无法接收都心跳信息,就认定主节点故障,那么就会接收主节点的业务和资源(包括vip)
                           4.当主节点又恢复的时候,那么备节点释放所接收到资源和业务

    vrrp协议
                    1. VRRP((Virtual Router Redundancy Protocol),虚拟路由冗余协议,为了解决静态路由的单点故障问题
                      2. VRRP的工作机制是基于竞选机制选择一个路由来完成任务处理
                     3. VRRP协议是通过发送多播数据包实现竞选的(Multicat)
                     4. 竞选出来主节点会一直发送广播包,backup节点一直监听这些广播包(处于监听状态)
                     5. 当备用节点无法接收到广播包的是时候,就会重新进行竞选,选出一个新的节点作为主节点
    keepalived可以完成如下工作
                           1. 自动生成vip(vip给用户提供服务)
                            2. 自动配置lvs规则
                            3. 可以实现各种服务的高可用
                            4. failover的时候,做vip的漂移

    案例:实现64(master) 和 65(backup) 两个主机上的web服务的高可用,提供服务的IP 233

    第一步:在实现高可用的节点的上安装keepalived(都需要安装)

    [root@64 ~]# yum install keepalived -y

    第二步:配置keepalived

    [root@64 ~]#  vim /etc/keepalived/keepalived.conf
    global_defs {                  <<<全局配置段
       notification_email {
       123456789@qq.com
    }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL      <<< 当前主机的ID值,这个值必须是唯一的
      
    }
    
    vrrp_instance VI_1 {     <<< 指定实例的名称
        state MASTER         <<<指定节点的状态,MASTER表示主,BACKUP表示备用节点
        interface eth0       <<< 指定将VIP绑定在哪个网卡上
        virtual_router_id 51  <<< 虚拟路由ID,用于标识哪些个节点是一组,同一组的主机的虚拟id需要相同
        priority 100          <<< 指定该节点的优先级(主这节点的优先级大于备节点)
        advert_int 1          <<< 指定备节点在几秒之内没有接收到主节点的心跳信息,就接管其业务和资源
        authentication {
            auth_type PASS        <<< 指定keepalived集群中各个主备节点做认证的方式
            auth_pass 1111
        }
        virtual_ipaddress {
        10.220.5.233              <<< 指定用于提供服务的ip地址(也就是VIP)
     }
    }
    
    virtual_server 10.220.5.233 {   <<<指定实例对应的VIP
        delay_loop 6                 <<<对后端节点做健康检查的时间间隔
        lb_algo rr                   <<<指定负载均衡调度算法
        lb_kind DR
        persistence_timeout 50        <<<同一IP的请求50秒内被分配到同一台真实主机
        protocol TCP                  <<<用TCP协议对真实节点做健康检查
    
        real_server 10.220.5.64 80 {  <<< 指定一台真实服务器的IP和端口
            weight 1                  <<<设置权重
         TCP_CHECK{                    <<<用建立tcp连接的方式做健康检测
                  connect_timeout 10    <<<设置建立tcp连接的超时时间
                  delay_before_retry 3   <<<超时后多久重试
                   nb_get_retry 3         <<<重试次数
                     connect_port 80     <<<健康检查使用的端口号j 
    real_server 10.220.5.65 80 {  <<< 指定一台真实服务器的IP和端口
            weight 1                  <<<设置权重
         TCP_CHECK{                    <<<用建立tcp连接的方式做健康检测
                  connect_timeout 10    <<<设置建立tcp连接的超时时间
                  delay_before_retry 3   <<<超时后多久重试
                   nb_get_retry 3         <<<重试次数
                     connect_port 80     <<<健康检查使用的端口号

    }
    }

    }




































































    解决监听的ip不存在的问题(nginx,httpd)
    在/etc/sysctl.conf增加一个选项
    net.ipv4.ip_nolocal_bind =1
    这是在启动服务的时候不检查所绑定的vip是否存在















  • 相关阅读:
    装箱拆箱操作
    《设计原本》试读:什么是设计
    代码大全中英文要点
    JSON对象和字符串之间的相互转换
    《设计原本》试读:何为真实?设计的概念
    Facebook后台技术探秘 世界最大的PHP网站
    重构模式:用异步计算替代长计算
    生命不息编程不止 Facebook CEO还在写代码
    万能的js复制按钮
    《网站设计解构》试读:1.1 可重用策略
  • 原文地址:https://www.cnblogs.com/bo-ke/p/9937136.html
Copyright © 2011-2022 走看看