设为首页 收藏本站
查看: 630|回复: 0

[经验分享] 构建LVS+Keepalived高可用群集

[复制链接]

尚未签到

发表于 2018-12-29 12:35:42 | 显示全部楼层 |阅读模式
防伪码:不必向我诉说春天,我的心里并没有秋寒

           第六章 构建LVS+Keepalived高可用群集

前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org。类似于我们以前学习过的HSRP热备份路由协议HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。我们今天学习的双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。


综上所述,VRRP即一主 + 多备,共用同一个IP地址,但优先级不同

实验案例:构建LVS+Keepalived高可用群集

实验分析:

Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

本节将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的LVS网站集群平台,如图所示:


实验基础:




1、配置主调度器

1)安装支持软件(开发内核包kernel-devel、openssl-devel,popt-devel支持库)


2)编译安装Keepalived



3)使用Keepalived服务(手动添加为系统服务)


4)配置主调度器

Vi  /etc/keepalived/keepalived.conf



详解配置参数:

! Configuration File for keepalived

  

global_defs {

   notification_email {                                        //接收邮件的地址,需要postfix,这里可不写

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 127.0.0.1                                 //邮件服务器地址,这里填写本机地址

   smtp_connect_timeout 30

router_id R1                                                   //主调度器路由器名称(注意与从调度器不能相同)

}

  

vrrp_instance VI_1 {

    state MASTER                                             //热备状态,主为MASTER,备为BACKUP

    interface eth0                                               //承载VIP地址的物理接口,即外网卡的名称

    virtual_router_id 1                                       //虚拟路由器的ID号,每个热备组保持一致

    priority 100                                                   //优先级,数值越大优先级越高

    advert_int 1                                                  //通告间隔秒数(心跳频率)

    authentication {                                            //认证信息,每个热备组保持一致

        auth_type PASS                                      //认证类型

        auth_pass 1111                                        //密码字串

    }

    virtual_ipaddress {                                        //漂移地址(VIP),可以有多个

        172.16.16.200

    }

}

virtual_server 172.16.16.200 {                           //虚拟服务器地址(VIP)

    delay_loop 6                                                     //健康检查的间隔时间(秒)

    lb_algo rr                                                            //轮询(rr)调度算法

    lb_kind DR                                                         //群集工作模式(DR即路由模式)      

    persistence_timeout 50                                    //连接保持时间  

    protocol TCP                                                      //应用服务采用的是TCP协议

  

    real_server 172.16.16.173  {                             //第一个节点的地址

        weight 1                                                            //节点的权重

        TCP_CHECK {                                                //健康检查方式

            connect_timeout 3                                        //连接超时   

            nb_get_retry 3                                               //重试次数

            delay_before_retry 3                                    //重试间隔(秒)   

        }

    }

}

  

    real_server 172.16.16.174  {                                  //同上

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

5)开启keepalived服务



  
注:inet 172.16.16.200/32 scope global eth0    //漂移地址,通俗来讲,谁是主,谁优先级高,跟着谁

  

6)从调度服务器的配置

首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP

Vi /etc/keepalived/keepalived.conf(使用scp命令远程拷贝一份)




7)启动从服务器的Keepalived服务


8) 测试lvs+keepalived群集

在客户机上访问172.16.16.172,可以正常访问,效果如下:


然后把主调度器的外网卡断掉,如果客户端依然可以访问网站,说明成功。


再次访问网站


在从调度器上查看网卡配置,可以看到虚拟ip显示了,说明现在从服务器成为了主调度器。




9) 测试联通性

在客户机上ping 172.16.16.172 -t,然后断掉主调度器的外网卡,发现断掉一下之后马上又恢复通信,说明今天的实验成功了,

当然最关键还是当主服务器故障之后,用户访问网站没有感觉,web节点的网页也要完全一样。


结语:通过主、从调度器的/var/log/messages日志文件,可以跟踪故障切换过程;若要查看负载分配情况,可以执行“ipvsadm -ln或ipvsadm -lnc”等命令。

最终可以验证LVS+Keepalived高可用负载均衡群集的健壮性。

谢谢观看,真心的希望能帮到您!





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657256-1-1.html 上篇帖子: keepalived高可用nginx 下篇帖子: Keepalived检测
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表