安装keepalived高可用(双实例)

首先,我们要先配置好nginx反向代理。

然后准备一个主负载均衡,一个从负载均衡,两个web服务器。

一、先在主从负载均衡上各安装两个网卡,一个公网,一个同网段私网。

  配置: cd /etc/sysconfig/network-scripts/

      cp ifcfg-eth0 ifcfg-eth1

      vim ifcfg-eth1

      DEVICE=eth1

      TYPE=Ethernet

      ONBOOT=yes

      NM_CONTOLLED=yes

      BOOTPROTO=dhcp

      ifup eth1

      ip link

二、安装keepalived安装包。

  yum -y install keepalived

  配置文件: /etc/keepalived/keepalived.conf

  启动脚本: /etc/init.d/keepalived start

  检查: ps -ef | grep keepalived | grep -v grep (当有三个进程时,证明安装正确)

      ip add | grep 192.168 (默认情况会启动三个VIP地址)

   检测后关闭服务: /etc/init.d/keepalived stop

     将上述测试同时在其他服务器上进行。

三、配置文件

  vim /etc/keepalived/keepalived.conf

    将interface 改为收发心跳包的网卡(eth1

    将VIP改为公网网卡(eth0

  启动命令: /etc/init.d/keepalived start

  查看: ifconfig (当主活着时,备上没有显示,只有主坏了,备上才会出现)

 四、双实例

  将主配置文件和备配置文件分别设置一个主和备,提高资源利用率,注意确定主Master和备Slave,不要写两个主,会出现裂脑现象。

  主配置文件: 要再文件中分别设置一个主Master和备Slave,设置不同的优先级,id号,IP号。

  备配置文件:主和备的位置正好相反,优先级相反。

 

进行测试,双实例配置完成。

五、如何在防火请开启的情况下接受到心跳包

首先确定是否有tcpdump命令,没有先安装。

然后抓包: tcpdump         -n                     -i          eth1 vrrp

           抓包      禁止反向解析    指定网卡

注意:每个keepalived对之间用不通的组播地址,就不会产生冲突,最好不通实例的通信认证密码也不同,防止裂脑现象的发生。

   网线和防火墙的故障容易导致裂脑现象的发生,建多根冗余线可以减轻该情况的发生。

如何改动可以防备裂脑现象:

假设网络正常,keepalived正常,nginx出现故障:

我们需要在Master上写一个脚本,解决keepalived只能检测物理故障的bug:

若无nginx监听80端口存在,那么就停掉keepalived,释放VIP。

  vim  detection_nginx.sh

    #! /bin/sh

    while true

    do

      if [`netstat -antup | grep nginx | wc -l` -ne 1 ];then

        /etc/init.d/keepalived stop

      fi

    sleep 5

    done

检测脚本是否成功:

后台执行脚本: sh detection_nginx.sh &

检查文件: ps -ef | grep detection | grep -v grep

确认nginx和keepalived是否正常:

netstat -antup | grep nignx

/etc/init.d/keepalived status

然后模拟nginx故障,看IP是否发生飘移。

如何验证是否发生了裂脑现象:

ping一下私网IP: 检测网线是否损坏

telnet IP 80端口号: 检测服务器是否损坏

posted @ 2018-12-06 01:37  mashuang  阅读(675)  评论(0编辑  收藏  举报