Keepalived最初是为LVS设计,专门监控各服务器节点的状态(LVS不带健康检查功能,所以使用keepalived进行健康检查),后来加入了VRRP(虚拟路由热备协议(Virtual Router Redundancy Protocol)功能,防止单点故障,实现了调度节点的高可用。

Keepalived检测每个服务器节点状态,服务器节点异常或工作出现故障,Keepalived将故障点从集群系统中剔除。当故障点恢复后,Keepalived再将其加入到集群系统中。

Keepalived 亮点:

一、可实现VRRP虚拟路由深度解决代理服务器故障自动切换。

二、可以自动配置LVS完美整合Keepalived+lvs功能。

三、Keepalived解决了lvs不带健康检查功能,可实现自动剔除集群故障机器,恢复自动添加。

实践环境准备:

后端web1:192.168.4.100/24  vip:192.168.4.15

后端web2:192.168.4.200/24  vip:192.168.4.15

keepalived:

  lvs:192.168.4.5 vip:192.168.4.15

  lvs:192.168.4.6 vip:192.168.4.15

重要要领:

1.因为是结合LVS的DR调度模式所以必须要设定后端服务器伪装IP,设置内核参数禁止申告和回应本地回环lo的arp请求,请参考上一篇博客操作:LVS DR模式实践 但是需要这里是使用keepalived+lvs

在两台lvs服务器上安装keepalived 和 ipvsadm 并设置自动开机启动,并清空已有的lvs规则。

yum install -y keepalived ipvsadm && systemctl enable keepalived && ipvsadm -C

编辑keepalived配置文件

! Configuration File for keepalived

global_defs {               //全局配置
  notification_email {
    qinghualai@foxmail.com      //故障报警接收人邮箱
  }
  notification_email_from qinghualai@keepalived.com     //需要先配置postfix
    smtp_server 192.168.4.20      //smtp服务器
    smtp_connect_timeout 30      //smtp连接超时时间设定
    router_id    keepalived5    //路由ID,必须为唯一
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
  }

  vrrp_instance VI_1 {  //vrrp配置

    state MASTER     //主服务器设置为MASTER(备用服务器为BACKUP)
    interface eth0       //定义网卡接口名
    virtual_router_id 161    //虚拟路由器ID,主备必须要一致,默认51为了安全修改成其他的id号
    priority 100     //服务器优先级,优先级越高则优先获取VIP
    advert_int 1
    authentication {    //虚拟路由认证
      auth_type PASS    //使用密码
      auth_pass 999520     //修改默认密码主备必须一致才能认证成功。
    }
    virtual_ipaddress {  //VIP配置地址
      192.168.4.15/24
    }

}

  virtual_server 192.168.4.15 80 {     //LVS虚拟服务器规则配置

    delay_loop 6
    lb_algo wlc          //LVS调度算法  这里使用的wlc,加权最小连接算法
    lb_kind DR          //LVS调度模式,有NAT和DR默认是NAT 
#    persistence_timeout 50    //持续时间50s 一般情况这种情况把这句去掉,客户端在一定时间内始终访问相同服务器
    protocol TCP         //协议类型TCP协议  

    real_server 192.168.4.100 80 {
    weight 1               //服务器权重值,权重值越大访问量越大。
    HTTP_GET {          //健康检查默认支持TCP_CHECK{} HTTP_GET{} SSL_GET{} 和自定义脚本检查
      url {           //检测的页面支持多个url检查

        path /index.html   //检测的url值
        digest 66ee606d5019d75f83836eeb295c6b6f    //校验的md5值
      }

      connect_timeout 3    //连接超时时间,健康检查判断时间
      nb_get_retry 3      //重试次数
      delay_before_retry 3    //每隔多少秒做一次健康检查
    }

    real_server 192.168.4.200 80 {
    weight 2
    HTTP_GET {

      url {

        path /index.html
        digest 699d00db64614eb287931b977d5c047f
      }

      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }

}

配置好主从节点后重启服务

systemctl restart keepalived

然后记得一定要清空iptables

iptables -F

重要要领:

1.服务器健康检查中TCP_CHECK{}和SSL_GET{}仅检查端口,HTTP_GET{}不仅检查端口还通过校验码去校验多个网页的md5值,查看是否网页遭受到篡改。

测试结果:

故障排错:

1.ping不通虚拟路由ip   在keepalived master节点上看虚拟路由ip是否绑定在了设定的网卡接口上,如果有那么请使用iptables -F清空规则试试。

2.停掉keepalived master如果没有自动切换到backup节点上,先看服务状态和日志进行排查多半是配置文件问题,虚拟路由ID 主从是否一致?  网络中是否还有其他vrrp协议ID和这边使用的一致? 内核是否打开包转发? 是否后端设定了vip? 后端设定了vip是否有将广播设定不宣告不回应?

Keepalived+LVS DR模式高可用架构实践的更多相关文章

  1. 014.Docker Harbor+Keepalived+LVS+共享存储高可用架构

    一 多Harbor高可用介绍 共享后端存储是一种比较标准的方案,将多个Harbor实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取.通过前置LB组件,如Keepalived ...

  2. [svc]高并发场景 LVS DR +KeepAlive高可用实现及ka的persistence_timeout参数

    LVS-DR+keepalived模式是一种非常经典的常用生产组合 高可用场景及LVS架构 一般都用一(负载)拖多(Server Array)方式 使用LVS架设的服务器集群系统有三个部分组成: (1 ...

  3. vivo 基于原生 RabbitMQ 的高可用架构实践

    一.背景说明 vivo 在 2016 年引入 RabbitMQ,基于开源 RabbitMQ 进行扩展,向业务提供消息中间件服务. 2016~2018年,所有业务均使用一个集群,随着业务规模的增长,集群 ...

  4. Lvs Keepalive DR模式高可用配置

    Lvs Keepalive DR模式配置 一.环境 #DIP# eth0:192.168.233.145#VIP# eth0:0 192.168.233.250/32 #RIP1:192.168.23 ...

  5. KeepAlived双主模式高可用集群

    keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提 ...

  6. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  7. 【葵花宝典】lvs+keepalived部署kubernetes(k8s)高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  8. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

  9. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

随机推荐

  1. 【译】微软的Python入门教程(一)

    Getting started with Python(Python入门) Overview 概述 The series of videos on Channel 9 is designed to h ...

  2. 超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?

    作者 | 张晓宇(衷源)  阿里云容器平台技术专家 关注『阿里巴巴云原生』公众号,回复关键词"1010",可获取本文 PPT. 导读:资源利用率一直是很多平台管理和研发人员关心的话 ...

  3. ORM查询总结版

    目录 概要 ORM常用字段 ORM基础 自定义一个插入类型,即固定长度 创建类终极版 多对多关系表创建 常用几个代码 参数 ORM与数据库代码对应的关系 外键使用分表很麻烦,要先删除主表后,再删除 不 ...

  4. .NET LINQ分析AWS ELB日志避免996

    前言 小明是个单纯的.NET开发,一天大哥叫住他,安排了一项任务: "小明,分析一下我们超牛逼网站上个月的所有AWS ELB流量日志,这些日志保存在AWS S3上,你分析下,看哪个API的响 ...

  5. dubbo配置文件的加载顺序详解(图示)

    Dubbo配置文件的加载顺序 ​ 在使用apache dubbo.version2.7.3 时,配置文件的加载情况.以provider提供服务者为例. 配置文件 ,以下四个配置文件. 其优先级 app ...

  6. 阿里云 RDS 数据库又发 CPU 近 100% 的“芯脏病”

    最近云界发生了2件事,一件是大事,一件是小事,大事是阿里云与微软合作推出了开放应用模型 Open Application Model(OAM),小事是由于微软 SQL Server 在阿里云上水土不服 ...

  7. WeCenter3.1.7 blind xxe 分析

    xxe漏洞危害大,可以查看任意文件,执行系统命令,进行ddos等,但是本次漏洞有一条件,需要后台登录,所以危害降低了,下面是详细分析 在models/weixin.php public functio ...

  8. [LUOGU1272] 重建道路 - 树形背包

    题目描述 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟一的.因此,牧场运输系 ...

  9. vue——同一局域网内访问项目

    1.想要在手机上访问本地的vue项目,首先要保证手机和电脑处在同一局域网内(连着同一个无线网) 2.将你电脑的ip设置为固定ip(ipconfig查找本地的ip,然后修改它,改为你想变的数字) 3.在 ...

  10. tkinter基础-标签、按钮

    本节内容: 明白标签.按钮的使用 实现简单的点击界面 Tkinter 简称tk,在python中属于内置模块,不需要进行安装,可直接引用,import tkinter 一. 首先我们做一个如图所示的图 ...