为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Linux


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

企业情景三:

网站的访问量越来越大,网站访问量已经从原来的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的变换以及权重值)

企业实战系列,逐步了解,逐步提升,不足之处烦请各位大佬指出(抱拳)

©著作权归作者所有:来自51CTO博客作者青奚的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消