美文网首页
keepalived

keepalived

作者: uangianlap | 来源:发表于2016-11-07 10:38 被阅读368次
    keepalived软件架构

    keepalived官网
    Keepalived是一款优秀的实现高可用的软件,它运行于LVS之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换。Keepalived是一个类似于Layer3、Layer4、Layer5交换机制的软件,也就是我们说的3层(网络)、4层(传输)、5层(会话)交换。Keepalived的作用是检测Web服务器的状态,如果有一台Web服务器死机,或者出故障,Keepalived将检测到,并将其从系统中剔除,当Web服务器工作正常后Keepalived会自动将其加入到服务器群中。这此工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的Web服务器。

    Keepalived特点

    (1)Keepalived是LVS的扩展项目,因此它们之间具备良好的兼容性。尤其相对于同为HA软件的Heartbeat而言。
    (2)通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。
    (3)负载均衡之间的失败切换,是通过VRRPv2(Virtual Router Redundancy Protocol)stack实现的,VRRP当初被设计出来就是为了解决静态路由器的单点故障问题。
    (4)iptables虽然不会影响Keepalived的运行。但为了更好的性能,我们通常将整套系统内所有主机的iptables都停用。
    (5)Keepalived产生的VIP就是整个系统对外的IP,如果最外端的防火墙采用的是路由模式,那就映射此内网IP为公网IP。

    CentOS6.4后收录进base包
    vrrp协议 vrrp白皮书
    virtual server
    vrrp_script
    /etc/

    实验准备
    1. 两台CentOS7.2的虚拟机 IBM(10.1.1.78)IBM2(10.1.1.79)

    准备好两台虚拟机
    2. 将IBM 与 IBM2时间同步一下,以保证一致。10.1.0.1是本地的ntpdate时间服务器。
    同步两台IBM主机时间
    3. 安装keepalived软件包(当前版本keepalived-1.2.13-7.el7.x86_64)
    安装keepalived软件包
    4. 配置IBM 与IBM2 主机中keepalived配置文件/etc/keepalived/keepalived.conf(记得先备份原本) keepalived配置文件组成部分

    IBM与IBM2都需要配置,但其只能有一个MASTER,例如下面是IBM的keepalived配置文件的配置

    ! Configuration File for keepalived
    global_defs {
       notification_email {
            root@localhost       #  这部分设置为需要接收邮件的人员邮箱地址
            uangianlap@localhost  
            boss@localhost
       }   
       notification_email_from kaadmin@localhost     # 这个随意设置
       smtp_server 127.0.0.1            # 本机只能使用这个
       smtp_connect_timeout 30          # 默认30秒连接超时
       router_id LVS_DEVEL            
    }
    
    vrrp_instance VI_1 {
        state MASTER                            
        interface eth0                 # 接口名应该与真实主机保持一致我的实验机这里叫enp0s3
        virtual_router_id 51           # 虚拟路由id
        priority 100                   # 优先级 小于255
        advert_int 1                   # 通告时间间隔          
        authentication {               # 认证方式,这里用的是密码认证
            auth_type PASS 
            auth_pass 1111             # 这个密码可以自己设置
        }   
        virtual_ipaddress {
            10.1.1.80                 #  设定的虚拟ip
        }   
    }
    

    2017-2-7

    • [ ] 马哥Linux架构第一天
    • [ ] 新概念英语第2册 Lesson 1
    • [ ] 健身30分钟(100个深蹲,100个小角度卧撑)
    • [x] vmware安装MacOS
    • [ ] <<开放的智力>>
    将上面的配置复制给IBM2 IBM2上需要修改的地方

    5. 启动IBM主节点的keepalived.service

    启动IBM主机的keepalived服务
    服务成功没问题的话,可以得到下图结果,看到虚拟ip10.1.1.80/32已加添加了。
    Paste_Image.png
    同样对IBM2上已启动keepalived服务(避免重复这里就不放截图了)· IBM2中服务启动后看/var/log/message看到进入BACKUP状态

    这时好玩的来了:我们把IBM上的keepalived服务给关了,然后会看到IBM2上日志信息里马上会出现如下的内容,反之重启IBM上的keepalived服务亦然:

    IBM2把虚拟ip抢过来了

    6. 在keepalived配置文件里添加追踪script的功能(关闭selinux)

    追踪脚本功能

    7. 在节点状态发生改变时通知用户
    在IBM:/etc/keepalived/目录中编辑脚本notify.sh

    #!/bin/bash
    # Author:
    # Description:
    
    vip=10.1.1.80
    contact="root@localhost"
    
    notify() {
        mailsubject="`hostname` to be $1: $vip floating"
        mailbody="`date +%F %H:%M:%S` : vrrp transition, `hostname` changed to be $1"
        echo $mailbody | mail -s ${mailsubject} $contact
    }
    
    case $1 in
    master)
        notify master
        exit 0;;
    backup)
        notify backup
        exit 0;;
    fault)
        notify fault
        exit 0;;
    *)
        echo "Usage: `basename $0` [master|backup|fault]"
        exit 1
        ;;
    esac
    
    在配置文件里可以这样调用通知脚本

    8. 如何配置IPVS
    9. 对某特定服务做高可用

    相关文章

      网友评论

          本文标题:keepalived

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