LVS DR模式搭建,keepalived + lvs

笔记内容:

  • 18.11 LVS DR模式搭建
  • 18.12 keepalived lvs

笔记日期:2017-11-13

18.11 LVS DR模式搭建

在实际生产环境中DR模式是用得最多的,NAT模式都用得比较少,因为NAT有一个瓶颈,服务器少还行,一旦服务器多的话,就不行了。所以DR模式才是重点,这一章节介绍如何搭建DR模式。

准备工作:

准备三台机器,一台作为分发器(dir),其他两台作为Real Server。三台机器都可以使用同一网段的IP,与NAT模式不同的是,三台机器都需要绑定一个vip,并且分发器不需要有一个单独的外网网卡。

我这里已经准备好三台机器的IP了,分别是:

  • 分发器(dir):192.168.77.130
  • Real Server 01:192.168.77.128
  • Real Server 02:192.168.77.134

准备好IP之后,在分发器上编写脚本:

vim /usr/local/sbin/lvs_dr.sh

编写内容如下:

#! /bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward  //打开路由转发

ipv=/usr/sbin/ipvsadm

vip=192.168.77.200

rs1=192.168.77.128

rs2=192.168.77.134

ifdown eno16777728

ifup eno16777728

#注意这里的网卡名字,这是绑定vip的

ifconfig eno16777728:2 $vip broadcast $vip netmask 255.255.255.255 up

# 添加网关

route add -host $vip dev eno16777728:2

$ipv -C  # 清空规则

$ipv -A -t $vip:80 -s rr

$ipv -a -t $vip:80 -r $rs1:80 -g -w 1  # 定义dr模式的规则

$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

修改完毕:

然后执行一下这个脚本,看看有没有错误:

sh /usr/local/sbin/lvs_dr.sh

如图则没问题。

配置Real Server:

除了dir分发器之外的另外的两台Real Server也要写一个脚本:

vim /usr/local/sbin/lvs_rs.sh

脚本的内容如下:

#/bin/bash

vip=192.168.77.200

#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端

ifdown lo

ifup lo

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip lo:0

#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端

#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

编辑完毕:

保存退出后执行这个脚本看看是否正常:

sh /usr/local/sbin/lvs_rs.sh

我这里出现了一个错误,无法载入本地网卡的配置文件:

解决办法,往ifcfg-lo配置文件里加上以下这一句(一会还会介绍另一种解决办法):

TYPE=LOOPBACK

重启网卡后再执行这个shell脚本:

如图,没有打印错误信息了。

接着再到另一台Real Server上编辑这个脚本:

vim /usr/local/sbin/lvs_rs.sh

内容是一致的:

保存退出后,执行这个脚本看看有没有问题,如果和上面那个问题一样显示无法载入文件的话,就把NetworkManager套件给关闭了,然后再执行就不会有问题了:

systemctl stop NetworkManager

systemctl disable NetworkManager

然后使用route -n命令查看一下网关:

如图,可以看到这个vip配置成功了,如果没有这个vip的话,可能是脚本出了问题,然后在另一台Real Server执行此命令查看:

如图,两台Real Server都需要绑定这个vip,如果没有这个vip的话,就是配置失败了。

然后再到分发器(dir)上执行ip addr 查看一下是否有绑定vip:

如图,有绑定vip,这样就是配置成功了,如果没有的话也是脚本有问题,需要检查一下是否修改的时候弄错了。

以上步骤都成功后,我们的DR模式就搭建完成了,接下来就是测试了:

  1. 关闭所有机器的防火墙(可以把这些命令写成一个脚本执行):
systemctl stop firewalld

systemctl disable firewalld

systemctl start iptables

systemctl enable iptables

iptables -F

service iptables save

2. 启动所有机器的Nginx,并且确保80端口有被监听:

service nginx start

3. 打开windows上的浏览器,访问192.168.77.200这个vip:

如图,可以看到分别访问了两台Real Server的默认页,因为分发器会将客户的访问请求,根据调度算法来分发到这个两台Real Server上,如此能够进行分配访问请求的话,就代表我们的DR模式搭建成功,并且能够进行访问了。

18.12 keepalived lvs

以上我们搭建好了LVS的DR模式,接下来我们使用Keepalived结合LVS,让Keepalived实现负载均衡的功能。

为什么要结合Keepalived:

原因一:分发器(dir)在LVS中是一个重要的角色,因为所有的用户请求都是被分发器所分配到每台Real Server上,所以说分发器也可以看作是一个入口,所有的请求都从这个入口进来。如果分发器宕机,那么所有的Real Server都接收不到用户的请求,相当于全部都瘫掉了。因此我们需要这个分发器能够是高可用的,而Keepalived则可以实现高可用,而且Keepalived本身还有负载均衡的作用。

原因二:如果没有Keepalived的话,其中一台Real Server宕机了,分发器依然还是会将请求分发过去,这样就会导致用户的请求无法被处理,并且在浏览器中也会显示连接失败,所以需要Keepalived来确保用户的请求不会被分发到一台已经宕机的Real Server上。

既然说明了为什么需要Keepalived,那么接下来就实际演示一下如何让Keepalived与LVS结合,完整架构需要两台服务器分别安装keepalived软件,的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived,因为我这之前已经安装过了,所以就不演示安装的过程了,如果不知道怎么安装的话,可以参考我另一篇使用keepalived搭建高可用的文章:

http://zero01.blog.51cto.com/12831981/1981374

1. 编辑keepalived的配置文件

vim /etc/keepalived/keepalived.conf

  1. 文件内容从以下网址获得:

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/lvs_keepalived.conf

  1. 修改ip和网卡名称:

保存退出后,因为搭建DR模式的时候脚本写入了一些规则,所以得先执行ipvsadm -C命令,把之前的ipvsadm规则清空掉。

4. 启动keepalived:

测试:

启动keepalived后,使用ipvsadm -ln命令,查看一下分发规则:

然后把其中一台Real Serve的Nginx给关了:

回到分发器上查看一下分发规则:

如图,可以看到keepalived自动把停掉Nginx服务的Real Serve给踢出分发规则了。这一步可能需要多执行几次ipvsadm -ln命令,因为我们在配置文件里设置的是10秒检测一次。

接着再把刚刚听停掉的那台Real Serve的Nginx启动起来:

这时候再次回到分发器上查看规则:

如图,可以看到keepalived检测到Real Serve的Nginx启动起来了,就自动添加了分发规则。

在浏览器上也能够正常访问:

扩展

haproxy+keepalived

http://blog.csdn.net/xrt95050/article/details/40926255

nginx、lvs、haproxy比较

http://www.csdn.net/article/2014-07-24/2820837

keepalived中自定义脚本 vrrp_script

http://my.oschina.net/hncscwc/blog/158746

如果图片失效了可以点击以下有道云连接:

有道云笔记

时间: 2024-10-13 11:25:17

LVS DR模式搭建,keepalived + lvs的相关文章

LVS DR模式搭建 keepalived + LVS

lvs DR dir 编写脚本vim /usr/local/sbin/lvs_dr.sh #! /bin/bashecho 1 > /proc/sys/net/ipv4/ip_forwardipv=/usr/sbin/ipvsadmvip=192.168.91.200rs1=192.168.91.129rs2=192.168.91.130#注意这里的网卡名字ifdown ens33ifup ens33ifconfig ens33:2 $vip broadcast $vip netmask 255

LVS DR 模式和 keepalived lvs

一.LVS DR 模式 1.准备工作 调度器(dir): 192.168.134.132 rs1:192.168.134.131 rs2:192.168.134.150 vip:192.168.134.200 2.将之前两台rs的网关修改回来. 将GATEWAY=192.168.134.100 修改为 192.168.134.2 3.在 dir 编辑配置文件  vim /usr/local/sbin/lvs_dr.sh #! /bin/bash echo 1 > /proc/sys/net/ip

LVS DR 模式搭建、Keepalived+LVS DR模式搭建

LVS DR 模式搭建 Keepalived+LVS DR模式搭建 原文地址:http://blog.51cto.com/13515599/2097080

LVS DR模式搭建、keepalived+LVS搭建介绍

LVS DR模式搭建 1.准备工作 DR模式同样需要三台虚拟机,三台机器只需要有"公网"IP,但在这种模式下又多了一个VIP. 调度器dir:172.16.111.100真实服务器rs1:172.16.111.110真实服务器rs2:172.16.111.120VIP:172.16.111.200 2.DR模式搭建 在dir机器上写入脚本 [[email protected] ~]# vim /usr/local/sbin/lvs_dr.sh 增加如下脚本内容: #! /bin/bas

LVS DR模式搭建、keepalived+LVS

LVS DR 模式搭建 准备工作 三台机器,三台机器均有公网IP. 调度器(director) IP:192.168.159.131 real server 1 (real1) IP:192.168.159.132 real server 2 (real2) IP:192.168.159.133 VIP:192.168.159.100 配置调度器(director) 创建一个脚本: [[email protected] ~]# vim /usr/local/sbin/lvs_dr.sh #! /

负载均衡(LVS DR模式搭建,DR只用一个公网ip,Keepalived+LVS DR)

一.LVS DR模式搭建 准备工作 三台机器: 分发器,dir:192.168.52.100 rs1:192.168.52.101  (网关改回来,之前nat模式改成100) rs2: 192.168.52.102  (网关改回来,之前nat模式改成100) vip:192.168.52.200   (这个虚拟ip需要绑定在每台机器上) 分发器dir上: [[email protected] ~]# iptables -F [[email protected] ~]# vim /usr/loca

18.11 LVS DR模式搭建;18.12 keepalived lvs

扩展 : haproxy+keepalived : http://blog.csdn.net/xrt95050/article/details/40926255 nginx.lvs.haproxy比较 : http://www.csdn.net/article/2014-07-24/2820837 keepalived中自定义脚本 vrrp_script : http://my.oschina.net/hncscwc/blog/158746 lvs dr模式只使用一个公网ip的实现方法 : ht

18.11 LVS DR模式搭建18.12 keepalived + LVS

18.11 LVS DR模式搭建首先将两台rs的网关改回来,因为在做nat模式的时候更改了网关vip需要绑定在所有的机器上在分以器dir上编辑脚本vim /usr/local/sbin/lvs_dr.sh内容#! /bin/bashecho 1 > /proc/sys/net/ipv4/ip_forwardipv=/usr/sbin/ipvsadmvip=192.168.133.200rs1=192.168.133.132rs2=192.168.133.133#注意这里的网卡名字ifdown e

2018-4-11 16周1次课 LVS DR模式搭建、keepalived + LVS

18.11 LVS DR模式搭建 IPtunnel模式用到的不多,不再多赘述 1,准备工作 三台机器 分发器,也叫调度器(简写dir):192.168.65.128 rs1:192.168.65.129 rs2:192.168.65.130 vip:192.168.65.100 dir上编写脚本 vim /usr/local/sbin/lvs_dr.sh,内容如下: [[email protected] ~]# vim /usr/local/sbin/lvs_dr.sh #! /bin/bash