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

[经验分享] keepalived + lvs

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-22 09:06:24 | 显示全部楼层 |阅读模式
1、服务介绍
    keepalived期初是专门为lvs设计的,专门用来监控lvs集群系统中各个服务节点的状态,后来又加
    入vrrp 的功能,因此除了配合lvs服务外,也可以作为其它服务(mysql、nginx、haproxy)的高可用软件。
2、VRRP 中文:虚拟路由冗余协议,它出现的目的是为了解决伪静态路由出现的单点故障问题,其次它
    是通过竞选机制来将路由任务交给某台VRRP路由器(报文都是通过ip多播包形式发送的)。从而
    保证网络的不间断、稳定运行。(VRRP使用的是加密协议)
3、原理:
   keepalived Directors 之间的故障切换转移,是通过VRRP协议来实现的。
   keepalived Directors正常工作时,主Director节点会不断的向备节点广播心跳信息,用以告诉备
   节点自己还活着,当主节点发生故障时,备节点就无法继续检测到主节点心跳,竟而调用自身的接
   管程序接管主节点的ip资源及服务。而当主节点恢复故障时,备节点会释放主节点故障时自身接管
   的ip资源和服务,恢复到原来自身的备用角色。
4、keepalived 官网:http://keepalived.org/
    时刻提醒你:备份 永远不要忘记

5、安装准备:
     软件下载:wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
     创建软连接: ln -s /usr/src/kernels/2.6.32-504.1.3.el6.x86_64/ /usr/src/linux
     #确认并且检查linux 的软链接 是否创建成功,否则功亏一篑。

     如果么有yum install kernel-devel -y 安装即可。
    yum install openssl* -y
    yum install popt* -y
6、cd keepalived-1.1.19
    ./configure
     Use IPVS Framework       : Yes     #使用的ipvs 框架     
     IPVS sync daemon support : Yes     #ipvs的同步支持
     Use VRRP Framework       : Yes     #vrrp框架

     make     
     make install
     #如果yes没有出现,很可能会导致keepalive的进程不正常,从而无法正常工作。
7、拷贝文件:
    /bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
    /bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    mkdir /etc/keepalived -p
    /bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
    /bin/cp /usr/local/sbin/keepalived /usr/sbin/


8、启动/:etc/init.d/keepalived  start
   #关闭防火墙、关闭selinux
   #检查进程是否为3个!
   

9、配置文件 /etc/keepalived/keepalived.conf: #配置文件见附件


    ! Configuration File for keepalived                                 #注释为!#开头
    global_defs {                                                       #全局定义
   notification_email {
    2731020772@qq.com                                                     #通知的email
    }
    notification_email_from Alexandre.Cassen@firewall.loc               #发件人
    smtp_server 10.0.0.1                                                                 #发件的地址
    smtp_connect_timeout 30                                                         
    router_id LVS_7                                   #keepalived的id,不同的机器不一样
}
vrrp_instance VI_1 {                                 #类似mysql的实例 v1_1相当于实例名
     state MASTER                                     #标记实例的状态
     interface eth0                                   #提供服务的端口
     virtual_router_id 55                              
#虚拟的路由id(在两个keepalived的必须一致,在一个keepalive里和别的实例不可以一样)
     priority 150                                           #优先级(竞选机制)
     advert_int 1                                           #健康检查监管的间隔
     authentication {                                       #验证的类型
         auth_type PASS                                     #密码
         auth_pass 1111
     }
     virtual_ipaddress {
         10.0.0.33/24                                   #虚拟的ip和  interface eth0对应
}
~                                                                                          

10、同样的步骤在另一台机器安装lvs 和keepalived
    另一台机器的配置文件:注意:router_id LVS_7 、virtual_router_id、 priority 参数设置;

11、配置文件搞好后两台机器启动keepalived,
    注意:查看ip时需要使用ip add来查看vip。
          vip 只可以同时存在一个,如果两台机器都有vip就裂脑(类似ip冲突),很严重的!!!


12、检验的时刻来临了!!!
     将一台机器的keepalived stop掉
     然后在观察另一台的vip 是否有启动!
     启动!ok!!!

13、多实例:根据不同的业务配置不同的多实例,实际就是配置多个vip,分业务负载。
     范例:见附件。

14、lvs + keepalived
   在配件文件中/etc/keepalived/keepalived.conf添加 vrrp_instance VI_1 相对应的vip rip节点

            virtual_server 10.0.0.33 80 {
            delay_loop 6
            lb_algo wrr
            lb_kind DR
            nat_mask 255.255.255.0
            persistence_timeout 300
            protocol TCP
        #ipvsadm -A -t 10.0.0.33:80 -s wrr -p 20
            real_server 10.0.0.22 80 {
                weight 1
                TCP_CHECK {
                connect_timeout 8
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
            }
            real_server 10.0.0.23 80 {
                weight 1
                TCP_CHECK {
                connect_timeout 8
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
            }
        }
        #ipvsadm -a -t 10.0.0.23:80 -r 10.0.0.8:80 -g -w 1
        #ipvsadm -a -t 10.0.0.22:80 -r 10.0.0.9:80 -g -w 1
        #TCP_CHECK 健康检查的方法,也可以使用其它的,例如:HTTP_GET |SSL_GET
        #两台机器都要操作,是一组,不要忘记,且它对语法检查很差,自己写脚本搞定。

15、保存配置文件后,将服务重启:
      ipvsadm -L -n 查看节点配置是否生效 (保证节点已启动)
      ip add 查看vip 是否正常。
      节点切换, 查看备节点。

16、当然, 你的节点vip 配置和arp抑制也需要操作,keepalived 是不负责这个的。

17、NAT 模式 注意打开forward ,保证以后配置不会出错

     sysctl  -p 查看 : net.ipv4.ip_forward = 0
     编辑:  VI  /etc/sysctl.conf        配置:  7 net.ipv4.ip_forward = 0 改为1

      sysctl  -p

18、 上述配置的vip 和RIP  (对外业务)最好使用外网地址,当然RS也可以指定一个网关出口,不
     过这个网关又成为业务瓶颈了。

19、如果是 lvs集群的扩展,方法一般是NDS轮询调度器解决单主的问题(例如:DNSPOD很不错),
    也可以使用交换机的OSPF功能解决。





运维网声明 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-38358-1-1.html 上篇帖子: keepalived和heartbeat区别 下篇帖子: keepalived+redis主从自动切换
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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