企业运维实战--lvs之DR模式负载均衡、keepalived、lvs高可用

企业运维实战--lvs之DR模式负载均衡、keepalived、lvs高可用


前言

lvs 负载均衡( linux virtual server),linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。


一、负载均衡原理

传统实现负载均衡:DNS ,算法单一、对后方没有健康检测

负载均衡方法:
DR> Tun > NAT> fullNAT

前三种没有抗攻击能力,且对后端没有健康检测
最后一个有上述两种功能,但性能相对较差,不过硬件可以弥补

DR模式: 主要修改mac,mac地址位于数据链路层,需要主机都在一个vlan(虚拟局域网)里面,DR和RS在一个Vlan里面,所以要做arp避免vip冲突

大概实现过程:
C(Client) ----> DR —> RS ----> C(Client)

ipvsadm是一个管理工具,内核中的ipvs、iptables < kernel netfilter,

iptables优先级最高

iptables允许输入:80 进入,ipvs标记读出:80 后续进入lvs策略(DR模式)


二、实现负载均衡

本次负载均衡实验采用DR模式,
server5为DR
server6、7为RS,

server5:

安装ipvsadm

yum install -y ipvsadm.x86_64

在这里插入图片描述

添加虚拟访问ip172.25.9.100

ip addr add 172.25.9.100/24 dev eth0
ip addr

在这里插入图片描述
-A添加service rr表示轮询

ipvsadm -A -t 172.25.9.100:80 -s rr

添加配置ipvsadm,使得172.25.9.6和172.25.9.7的80端口直连到172.25.9.100的80端口

ipvsadm -a -t 172.25.9.100:80 -r 172.25.9.6:80 -g #-a表示添加  -t tcp模式 -g表示直连
ipvsadm -a -t 172.25.9.100:80 -r 172.25.9.7:80 -g

查看配置 -n表示跳过解析

ipvsadm -ln

在这里插入图片描述

删除

ipvsadm -d -t 172.25.9.100:80 -r 172.25.9.2:80 -g

server6:

安装apache,编写默认发布文件,开启服务

yum install -y httpd
echo server6 > /var/www/html/index.html
systemctl start httpd.service

在这里插入图片描述

添加ip

ip addr add 172.25.9.100/32 dev eth0 
ip addr

安装arp用于锁定mac地址

yum install -y arptables
arptables --help
arptables -nL

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

设定本机ip虚拟网段172.25.9.100不被访问,锁定MAC地址,mac地址位于数据链路层

arptables -A INPUT -d 172.25.9.100 -j DROP
arptables -A OUTPUT -s 172.25.9.100 -j mangle --mangle-ip-s 172.25.9.6
arptables-save
arptables-save > /etc/sysconfig/arptables
systemctl restart arptables.service
arptables -nL

在这里插入图片描述

在这里插入图片描述

将arptables配置文件传给server7

scp /etc/sysconfig/arptables server7:/etc/sysconfig/

在这里插入图片描述

server7: 与server6操作相同

yum install -y httpd
echo server7 > /var/www/html/index.html
systemctl start httpd

在这里插入图片描述

ip addr add 172.25.9.100/32 dev eth0
yum install -y arptables
vim /etc/sysconfig/arptables #修改arptables
cat /etc/sysconfig/arptables

在这里插入图片描述

systemctl restart arptables.service
arptables -nL

在这里插入图片描述

测试:真实主机:

arp -d 172.25.9.100
ping 172.25.9.100
arp -an|grep 100
for i in {1…10};do curl 172.25.9.100; done

arp -d 172.25.9.100
ping 172.25.9.100
arp -an|grep 100
arp -d 172.25.9.100
ping 172.25.9.100
arp -an|grep 100

反复删除记录,arp锁定mac成功

 for i in {1..10};do curl 172.25.9.100;  done

在这里插入图片描述

注意:
server5本机80端口虽然已经开启,但是由于ipvs优先级较高,他将所有80端口的调度调入lvs策略中进行,所以本机不会执行172.25.9.100:80的操作,也就不会参加到负载均衡中。
在这里插入图片描述

在这里插入图片描述

三、keepalived进行后端检测

安装keepalived

yum install -y keepalived

在这里插入图片描述

编辑配置文件,

cd /etc/keepalived/
ls
vim keepalived.conf

在这里插入图片描述

! Configuration File for keepalived

global_defs {
   notification_email {
	root@localhost #接收警报的email地址,可添加多个
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1 #邮件服务smtp_server地址 采用本地回环接口
   smtp_connect_timeout 30 #设置连接smtp服务器超时时间
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER #状态由priority决定 大的为MASTER,小的为BACKUP
    interface eth0 #高可用HA检测网络接口
    virtual_router_id 39 #主、备机的vrid必须相同,取值0~255
    priority 100 #主机优先级,主机优先级一定要大于备机
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { #虚拟vip地址
	172.25.9.100
    }
}
# 负载均衡配置
# DR配置
virtual_server 172.25.9.100 80 {  #定义虚拟服务器
    delay_loop 6 #每隔6秒查询realserver状态
    lb_algo rr  #lvs调度算法 此处为轮询
    lb_kind DR #DR模式
    #persistence_timeout 50 #延迟50s负载均衡
    protocol TCP #指定转发类型 TCP&UDP
# RS配置
    real_server 172.25.9.6 80 { #配置服务节点
        weight 1 #权重为1 可根据服务器性能调整,数字越大,权值越大
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.9.7 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

systemctl status postfix #收发邮件系统
在这里插入图片描述
端口为25
在这里插入图片描述

清空所有之前负载均衡手动的操作

删除之前添加的虚拟网段

ip addr

ip addr del 172.25.9.100/24 dev eth0
ipvsadm -C #删除ipvs设置
ipvsadm -ln

在这里插入图片描述

启动服务,自动创建ip并添加到ipvs策略

systemctl start keepalived.service
ipvsadm -ln

在这里插入图片描述
在这里插入图片描述

测试:

真实主机:

for i in {1..10};do curl 172.25.9.100;  done

在这里插入图片描述

server6关闭httpd服务
在这里插入图片描述

server5 ipvsadm -ln
在这里插入图片描述

for i in {1..10};do curl 172.25.9.100;  done

在这里插入图片描述

server6重新启动apache

for i in {1…10};do curl 172.25.9.100; done

四、lvs高可用

配置另一台BACKUP lvs ,当MASTER down 掉后自动结果vip进行lvs负载均衡操作

全新虚拟机server4:

yum install -y keepalived
yum install -y ipvsadm

在这里插入图片描述
在这里插入图片描述

cd /etc/keepalived/

vim keepalived.conf

修改keepalived配置文件

MASTER ----> BACKUP

BACKUP优先级低于	MASTER

开启服务

systemctl start keepalived.service

查看ipvs策略是否成功

ipvsadm -ln

在这里插入图片描述

ip addr #当MASTER down后 vip会漂移到BACKUP,重启MASTER后回复到MASTER上,因为master优先级高

测试:

server5:

systemctl stop keepalived.service

在这里插入图片描述

server6:

ipvsadm -ln
ip addr

在这里插入图片描述

server5:

systemctl start keepalived.service

在这里插入图片描述
server4:

在这里插入图片描述
server5:

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值