LVS DR +keepalived配置

Stella981
• 阅读 738

LVS DR +keepalived配置

我们先来看看为什么要引入 keepalived,前面的 lvs 虽然已经配置成功也实现了负载均

衡,但是我们测试的时候发现,当某台 real server 把 nginx 停掉,那么 director 照样会把请

求转发过去,这样就造成了某些请求不正常。所以需要有一种机制用来检测 real server 的状

态,这就是 keepalived。它的作用除了可以检测 RS 状态外, 还可以检测备用 director 的状态,

也就是说 keepalived 可以实现 ha 集群的功能,当然了也需要一台备用 director 服务器。备用

director 也需要安装一下 keepalived 软件。两台 director 上都执行如下命令:

# yum install -y keepalived

主 director 上安装好后,编辑配置文件

# vim /etc/keepalived/keepalived.conf  //加入如下:

#全局部分配置主从#

vrrp_instance VI_1 {

    state MASTER   

#备用服务器上为 BACKUP

    interface eth0

    virtual_router_id 51

    priority 100  

#权重优先级备用服务器上为90,或比主上小也可以

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

#认证机制

    }

    virtual_ipaddress {

        192.168.0.110

#规定虚拟VIP,也是对外的vip

    }

}

#dir部分包含rs部分#

virtual_server 192.168.0.110 80 {

#规定虚拟VIP,也是对外的vip

    delay_loop 6                  

#(每隔6秒查询realserver状态)

    lb_algo wlc                  

#(lvs 算法可以是wlc lc rr wrr)

    lb_kind DR                  

#(Direct Route可自动识别)

    persistence_timeout 60        

#(同一IP的连接60秒内被分配到同一台realserver,长连接60秒,可改成0,不需要长连接)

    protocol TCP               

#(用TCP协议检查realserver状态)

    real_server 192.168.0.43 80 {

#真实real_server

        weight 100               

#(权重)

        TCP_CHECK {

        connect_timeout 10      

#(10秒无响应超时,就自动把这台server取消掉)

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

real_server 192.168.0.45 80 {

#真实real_server

        weight 100

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

     }

}

以上为主 director 的配置文件,从 director 的配置文件只需要修改如下内容:

state MASTER -> state BACKUP

priority 100 -> priority 90

配置完 keepalived 后,需要开启端口转发(主从都要做):

# echo 1 > /proc/sys/net/ipv4/ip_forward

然后,两个 rs 上执行/usr/local/sbin/lvs_dr_rs.sh 脚本

另外,需要注意的是,启动keepalived服务会自动生成vip和ipvsadm规则,不需要再去执行上面提到的/usr/local/sbin/lvs_dr.sh 脚本。

测试

把主上的keepalived服务停掉

# service keeplived stop

查看从上的keepalived服务

# ip addr 查看ip地址

LVS DR +keepalived配置

把其中的一个real_server1的nginx服务停掉,在打开一个虚拟机,测试

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

会自动把rs1摘除掉,转到rs2上

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Keepalived+Nginx实现高可用和双主节点负载均衡
简介Nginx可以实现高并发反向代理,lvs集群可以实现负载均衡,但是他们都有一个共同的弊端,就是Nginx,lvs架构中Director是单点故障,有没有一个好的方案解决这个问题呢?答案是有。通过Keepalived就可以实现,前端Nginx,lvs中Director服务器的高可用和负载均衡,通过shell命令或者脚本可以实现对服务器状态和服务的监控!
Stella981 Stella981
3年前
Keepalived+LVS
LVS架构中,不管是NAT模式还是DR模式,当后端的RS宕掉后,调度器依然会把请求转发到宕掉的RS上,这样的结果并不是我们想要的。其实,keepalived就可以解决问题,它不仅仅有高可用的功能,还有负载均衡。也就是说keepalived已经嵌入了LVS功能,完整的keepalivedLVS架构需要有两台调度器实现高可用,提供调度器的只需要一台,另外一台作
可莉 可莉
3年前
18、7 Keepalived LVS
完整的架构需要两台服务器(角色为dir),分别安装Keepalived工具,目的是实现高可用,但Keepalived本身也有负载均衡功能,所以本次使用可以只安装一台Keepalived。Keepalived内置了ipvsadm的功能,所以不需要安装ipvsadm包,也不用编写和执行lvs\_dr脚本。准备工作三台机器:调度器director:
Wesley13 Wesley13
3年前
Ubuntu10.04.4 Server下基于LVS DR模式+Keepalived的负载均衡高可用
Ubuntu10.04.4 Server下基于LVS DR模式Keepalived的负载均衡高可用集群LVSKeepalived 介绍2LVS2Keepalvied2ubuntu系统环境准备工作2更换Ubuntu软件源2架构拓扑图2服务安装3安装LVS3安装Keepalived3服务配置4
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这