企业实战(3)-主从实现基于Keepalived高可用集群网站架构

企业实战:逐步实现企业各种情景下的需求

企业情景三:
网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?

项目三:主从实现基于Keepalived高可用集群网站架构

实现keepalived企业级高可用基于LVS-DR模式的应用实战:

一、环境准备:
两台centos系统做DR、一主一从,两台实现过基于LNMP的电子商务网站

二、安装步骤:
1、两台服务器都使用yum 方式安装keepalived服务
2、iptables -F && setenforing 清空防火墙策略,关闭selinux

实现前分配各个角色

机器名称 IP配置 服务角色 备注
lvs-server-master VIP:172.17.252.110 DIP:172.17.250.223 主负载均衡器 开启路由功能 配置keepalived
lvs-server-backup VIP:172.17.252.110 DIP:172.17.251.37 从负载均衡器 开启路由功能 配置keepalived
rs01 RIP:172.17.252.87 后端服务器 网关指向DIP(桥接)
rs02 RIP:172.17.250.45 后端服务器 网关指向DIP(桥接)

三、配置基于DR模式的LVS负载均衡集群:

主(master):
1、修改keepalived主(lvs-server-master)配置文件实现virtual_instance
vrrp_instance VI_1 {
    state MASTER  #状态情况
    interface eth1   #接口
    virtual_router_id 51
    priority 100   #权重
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass magedu
    }
    virtual_ipaddress {
    172.17.252.110   #VIP
    }
}
2、修改keepalived主(lvs-server-backup)配置文件实现virtual_server
virtual_server VIP 端口 {
    delay_loop 6
    ld_algo rr
    lb_kind DR
    protocol TCP
    real_server 172.17.252.87 80 {   #RIP
        weight 1
        TCP_CHECK {
            connect_timeout 3
        }
    }
    real_server 172.17.250.45 80 {   #RIP
    weight 1
    TCP_CHECK {
        connect_timeout 3
        }
}
从(back-up):
1、修改keepalived从(lvs-server-backup)配置文件实现virtual_instance
vrrp_instance VI_1 {
    state BACKUP  #状态情况
    interface eth1  #接口
    virtual_router_id 51
    priority 98  #权重,注意从要比主的权重小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass grr02
        }
        virtual_ipaddress {
            172.17.252.110
            }
}
2、修改keepalived从(lvs-server-backup)配置文件实现virtual_server
virtual_server VIP 端口 {
    delay_loop 6
    ld_algo rr
    lb_kind DR  #LVS-DR模式
    protocol TCP
    real_server 172.17.252.87 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
            }
        }
    real_server 172.17.250.45 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        }
}

企业应用
(1)实现keeaplived故障通知机制
在企业中,高可用服务,是保证整个系统稳定性的重要前提,确保高可用服务能正常工作和运转,也是非常重要的工作。除了服务上线前的充分测试之外,也需要确保对高可用服务的监控机制,keepalived 自身具备监控和通知机制,可在发生主从切换、故障转移时,通过自定义命令或者脚本,实现通知功能,从而让管理员在第一时间得知系统运行状态,确保整个服务的稳定性和可用性。
可在配置文件中,在instance配置中,通过keepalived 通知功能notify,可实现定制化脚本功能,如下所示:

notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault" ```

脚本示范:

vim /etc/keepalived/notify.shbr/>#!/bin/bash
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


(2)实现keeaplived自定义脚本功能
在配置文件中,可实现以下配置,定义一个脚本,并在对应的实例instance中调用,之后就可通过手动建立down 文件,使得keepalived 实例减少权重,实现主从切换,常用于在线修改keepalived 配置文件时使用
脚本示范:

    ```vrrp_script chk_down {
    script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0 "
    interval 2 # check every 2 seconds
    weight -5
    }   ```

对应实例中调用
track_script {
chk_down
}
在配置文件中,也可实现以下配置,定义一个脚本,并在对应的实例中调用,也可以用于检测服务是否有异常,异常的话进行切换。
脚本示范:

vrrp_script chk_sshd {
script "killall -0 sshd" # cheaper than pidof
interval 2 # check every 2 seconds
weight -4 # default prio: -4 if KO
fall 2 # require 2 failures for KO
rise 2 # require 2 successes for OK
}

track_script {
    chk_sshd

}


主从实现完成,若想要实现主主方式,可以理解为互为主从,一个server端配置为主从,另一server端也配置为主从(注意IP的变换以及权重值)
企业实战系列,逐步了解,逐步提升,不足之处烦请各位大佬指出(抱拳)
优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/mozart/2044127

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。