美文网首页
Keepalived实现高可用技术

Keepalived实现高可用技术

作者: 清竹志 | 来源:发表于2018-05-18 20:56 被阅读0次

    一.  主配置文件详解:/etc/keepalived/keepalived.conf

    ! Configuration File for keepalived

    global_defs {   #全局部分定义邮件报警系统,可以不用定义

      notification_email {   #定义报警邮件发送目标邮箱地址

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc

      }

      notification_email_from Alexandre.Cassen@firewall.loc   #定义发送报警邮件的服务器地址

      smtp_server 192.168.200.1  #定义报警邮件的smtp服务器地址

      smtp_connect_timeout 30    #定义连接smtp服务器的超时时间

      router_id master #定义keepalived节点域名或者IP地址

    }

    vrrp_instance lvs1 {  #定义vrrp实例。一个配置文件中可以实现多实例。但不同主机上互为master<-->backup的实例名需相同

        state MASTER    #定义实例的角色状态是master还是backup必须大写

        nopreempt     #不抢占(只针对BACKUP生效)

        interface ens3    #对外提供服务的网卡接口,即VIP绑定的网卡接口

        virtual_router_id 51 #VRRP组id,keepalived主从必须的id号必须相同

        priority 100   #节点优先级,取值范围0~254,MASTER要比BACKUP高

        advert_int 1   #心跳信息发送和接收时间间隔,单位为秒

        authentication {  #验证类型和验证密码。类型主要有 PASS、AH 两种,通常使用PASS类型,据说AH使用时有问题。验证密码为明文,同一vrrp 实例MASTER与BACKUP使用相同的密码才能正常通信。

            auth_type PASS

            auth_pass 1111    #最多支持8字符,超过8字符将只取前8字符

        }

        virtual_ipaddress {  #虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致。

            192.168.300.16

            192.168.200.17

            192.168.200.18

        }

    }

    virtual_server 192.168.300.16 80 {  #虚拟服务地址和端口,使用空格分隔,其中地址为VIP

        delay_loop 6    #健康检查时间间隔

        lb_algo rr     #定义负载均衡LB的算法,这里使用的是rr调度算法

        lb_kind DR   #负载均衡转发规则。包括DR、NAT、TUN 3种,一般使用路由(DR)转发规则。

        persistence_timeout 50  #负载均衡转发规则。包括DR、NAT、TUN 3种,一般使用路由(DR)转发规则。

        protocol TCP   #转发协议,分为TCP和UDP两种

        sorry_server 192.168.200.200 1358   #只有real_server全部宕机后,才会访问Keeplavied自己的网页,一般用于提示用户服务器维护中....(注意这里的ip地址必须是本机ip)

        real_server 192.168.201.100 443 {  #真实服务器IP和端口,可以定义多个 ,地址和端口使用空格分隔

            weight 1 #负载权重,值越大,转发的优先级越高

            SSL_GET {  #健康状况检查的检查方式,常见的有HTTP_GET|SSL_GET|TCP_CHECK|MISC_CHECK。

                url {

                  path /   #指定ssl_get健康状况检查的路径,例如检查index.html是否正常(一般为网页放置的位置)

                  digest ff20ad2481f97b1754ef3e12ecd3a9cc   #健康状况需要状态码,可以是status_code、digest或digest+status_code#digest值用keepalived的genhash命令生成,一般使用status_code即可

                }

                url {

                  path /mrtg/  #可以定义多个网页位置

                  digest 9b3a0c85a887a256d6939da88aabd8cd

                }

                connect_timeout 3  #表示3秒无响应就超时,即此realserver不健康,需重试连接

                nb_get_retry 3   #表示重试3次,3次之后都超时就是宕机,防止误伤(nb=number)

                delay_before_retry 3   #重试的时间间隔

     #上述配置需12秒才能判断节点故障,时间太久,应改小

            }

        }

    }

    real_server 192.168.200.5 1358 { #真实服务器可以有多个,一般我们不用Keepalived作代理。

            weight 1

            HTTP_GET {  #使用HTTP的方式作健康检查

                url {

                  path /testurl/test.jsp

                  digest 640205b7b0fc66c1ea91c463fac6334d

                }

                url {

                  path /testurl2/test.jsp

                  digest 640205b7b0fc66c1ea91c463fac6334d

                }

                url {

                  path /testurl3/test.jsp

                  digest 640205b7b0fc66c1ea91c463fac6334d

                }

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

    }

    real_server 192.168.122.176 80 {

            weight 1

            TCP_CHECK { #使用TCP的方式作健康检查(常用)

                connect_port 80

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

    二.  开启VRRP地址转发功能:

    [root@rs1 ~]# ip addr add dev lo 30.30.30.100/32   //在lo接口上绑定VIP(这一步在所有的real_server上设置即可)

    //下面的步骤是开启VIP地址转发功能

    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

    //确保LoadBalancer仓库可用

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

    [root@master ~]# ipvsadm -C //清空配置

    [root@master ~]# service ipvsadm save  //保存配置

    [root@master ~]# ipvsadm -L -n --stats //检测配置情况

    相关文章

      网友评论

          本文标题:Keepalived实现高可用技术

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