高可用组建配置

Posted by Blog of JackerWang on July 9, 2018

安装环境

Nginx:

  10.142.232.113:8383
  10.142.232.114:8383
  10.142.232.115:8383 将  114和 115配上高可用组建keepalived

Keepalived配置说明

114上配置keepalived的Master,115上配置keepalived的Backup。

vrrp_script chk_http_port {
    script "/usr/local/src/check_nginx_pid.sh"
    interval 2                          #(检测脚本执行的间隔)
    weight 2
}

vrrp_instance VI_1 {
    state MASTER              #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
    interface eth0     #指定HA监测网络的接口
    virtual_router_id 51      #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
    priority 100             #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
    advert_int 1              #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {          #设置验证类型和密码
        auth_type PASS        #设置验证类型,主要有PASS和AH两种
        auth_pass 1234        #设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
    }
    virtual_ipaddress {       #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
         10.142.232.222/24
    }
}


检测脚本

vim check_nginx_pid.sh

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
      /usr/local/nginx/sbin/nginx                #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived
      fi

fi

以上配置注意:

网卡信息: interface eth0 (这里换成自己地网卡名称) VIP:这里选取的虚拟IP是10.142.232.222/24,24位网络号。这个ip的选取要再,要确保内网环境中没有机器使用这个ip。

115上配置就是将 state 改成 BACKUP,priority修改为比100低即可。

启动验证

启动keepalived组件

service keepalived start

查看网卡绑定的ip

ip a


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 28:6e:d4:88:cb:ae brd ff:ff:ff:ff:ff:ff
    inet 10.142.232.114/24 brd 10.142.232.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.142.232.222/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2a6e:d4ff:fe88:cbae/64 scope link
       valid_lft forever preferred_lft forever

可以看到这里的网卡eth0已经绑定了2个ip。

可以关掉keepalived的master,观察另外一台机器是否变成了Master。

VIP总会在keepalived服务器中的某一台上,也只会在其中的某一台上;VIP绑定的服务器上的nginx就是master,当VIP所在的服务器宕机了,keepalived会将VIP转移到backup上,并将backup提升为master。