LVS 集群负载均衡实战

LVS/DR 实战

环境准备:一台Load Balancer,两台nginx,系统:Centos6.6

 

#首先在Load Balancer中安装IPVS 内核模块

yum install ipvsadm

 

#尝试ipvsadm能否正常使用

ipvsadm -L

 

#配置 eth0 的别名,VIP 的使用

ifconfig eth0:0 192.168.119.200 netmask255.255.255.0 up

 

#为了确保,还是使用该命令查看一下

ifconfig

 

#添加调度器,以及监听的端口号

ipvsadm -A -t 192.168.119.200:80 -s rr

 

#添加 Real Server

ipvsadm -a -t 192.168.119.200:80 -r192.168.119.134:80 -g

ipvsadm -a -t 192.168.119.200:80 -r192.168.119.135:80 -g

 

Real Server nginx 操作

#两台nginx服务器,修改首页,并确定可以打开

 

 

#编写脚本,保证到/etc/init.d/lvsrs

#description : Start Real Server
VIP=192.168.119.200
. /etc/rc.d/init.d/functions
case "$1" in
    start)
   echo " Start LVS of Real Server "
   /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
   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
   ;;
    stop)
   /sbin/ifconfig lo:0 down
   echo "Close LVS Director server"
   echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
   echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
   echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
   ;;
    *)
   echo "Usage: $0 {start|stop}"
   exit 1
esac

注:

#设置只回答目标IP地址是来访网络接口本地地址的ARP查询请求

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

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

#设置对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

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

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

 

#启动脚本

/etc/init.d/lvsrs start

 

#为了保险自己可以查看一下是否成功修改

cat /proc/sys/net/ipv4/conf/lo/arp_ignore

 

到此为止,我们便完成了 VS/DR 的负载均衡的所有配置

验证一下,浏览器打开http://192.168.119.200

 

LVS + keepalived实战

 环境准备:两台Load Balancer(主备),两台nginx,系统:Centos6.6

 

#首先在两台Load Balancer中安装IPVS 内核模块和Keepalived

yum install ipvsadm keepalived –y

 

#并尝试ipvsadm能否正常使用

ipvsadm -L

 

#编辑Keepalived配置文件

vim /etc/keepalived/keepalived.conf

 以下便是Keepalived配置文件的内容,请勿将注释内容写入

! Configuration File for keepalived
#全局配置,在发现某个节点出故障的时候以邮件的形式同时管理员
global_defs {
   notification_email{
    sysadmin@localhost                           #通知管理员的邮箱
   }
  notification_email_from root
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}
 
#配置vrrp
vrrp_instance VI_1 {
   state MASTER                                  #设置为主节点
   interface eth0                                #设置发送消息的网卡
   virtual_router_id 51
   priority 100                                  #设置主节点的优先级
   advert_int 1                                  #master与 backup 之间同步检查时间间隔,单位秒
   authentication {                              #配置vrrp直接的认证
       auth_type PASS
       auth_pass 1111
}
virtual_ipaddress {                              #配置虚拟 IP
   192.168.119.200
}
}
 
#配置虚拟 IP
virtual_server 192.168.119.200 80 {
   delay_loop 6                                  #健康检查时间
   lb_algo rr                                    #ipvs的调度算法选择rr
   lb_kind DR                                    #使用 VS/DR 模式
   nat_mask 255.255.255.0
   persistence_timeout 50
protocol TCP                                    #转发协议类型
real_server 192.168.119.134 80 {                #配置 realserver 的信息
       weight 1                                 #配置该节点的权重
       HTTP_GET {                               #健康检查方式
           url {                                #检查的路径
              path /
              status_code 200
           }
           connect_timeout 2                    #连接超时时间
           nb_get_retry 3                       #重新连接次数
           delay_before_retry 1                 #重连时间间隔
       }
    }
   real_server 192.168.119.135 80 {
       weight 1
       HTTP_GET {
           url {
              path /
              status_code 200
           }
           connect_timeout 2
           nb_get_retry 3
           delay_before_retry 1
       }
    }
}

保存,配置完主Keepalived后,将此文件复制到备用Keepalived,然后修改以下两个参数即可:

将“state MASTER”更改为“state BACKUP”。

将“priority 100”更改为一个较小的值“priority 80”。

 

启动Keepalived+LVS集群,Real Server nginx 操作同上实例相同,LVS + keepalived就已经完成了。最后~测试手动stop 一个keepalived 或nginx是否可以正常访问服务

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值