Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例

一、keepalived概念和原理

keepalived作为负载均衡的最有效的机制,
1支持故障自动切换(Failover)
2 支持节点健康状态检查(Health Checking)
3 判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

原理

keepalived采用VRRP热备份协议实现Linux 服务器的多机热备功能
VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案。由多台路由器组成一个热备份组,通过共用的虚拟IP地址对外提供服务。
每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

二、DR模式的流量方向

1.请求处理过程

1 客户端发送请求vip服务器 负载均衡器接受这个请求
2 负载均衡器根据负载均衡的算法来选择后端的物理服务器,不封装报文 只是将数据帧的MAC地址改为后端的MAC地址在内网发送
3 后端的服务器接到数据帧后,由于VIP都相同 解封装后发现目标IP与本机匹配 就处理这个报文 。处理完毕后响应报文通过lo接口传送给物理网卡然后向外发出
4 客户端收到回复 但客户端不会知道是那台服务器提供的服务。

2.解决ARP问题

由于VIP都一样 所以在ARP广播的时候会造成广播风暴 应该只有集群最前端的负载均衡器响应ARP广播 其他的节点服务器不响应这个请求
使用虚接口 lo:0 承载VIP地址设置内核参数 arp_ignore=1:系统只响应目的IP为本地 IP 的ARP请求
设置内核参数 arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。

三 搭键LVS+keepalived

架构图

在这里插入图片描述

配置主从负载均衡器

两台配置一样

systemctl stop firewalld.service
setenforce 0
yum -y install ipvsadm keepalived  安装lvs和keepaliveb包
modprobe ip_vs  加载ip_vs模块
cat /proc/net/ip_vs  查看ip_vs版本
cp -p ifcfg-ens33 ifcfg-ens33:0  创建一张虚拟网卡
vim ifcfg-ens33:0  配置虚拟地址
systemctl restart network
ifup ens33:0     启动网卡
ifconfig  查看地址
LVS负载均衡器和各节点需要共用vip地址,应该关闭linux内核的重定向响应参数,不充当路由器(转发、重定向)
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
ipvsadm-save > /etc/sysconfig/ipvsadm   配置分配策略
ipvsadm -C
ipvsadm -A -t 192.168.30.18:80 -s rr       这里指定的虚拟IP为ens33网卡ip,重启keepliaved后会自动绑定虚拟网卡
ipvsadm -a -t 192.168.30.18:80 -r 192.168.30.19:80 -g   指向两个web站点
ipvsadm -a -t 192.168.30.18:80 -r 192.168.30.15:80 -g
ipvsadm  开启测略
ipvsadm -Lnc 

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

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

配置web节点

先配置虚拟接口

cd /etc/sysconfig/network-scripts/
cp -p ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0  配置虚拟网卡
systemctl restart network
ifup lo:0
ifconfig
route add -host 192.168.30.100 dev lo:0  配置路由禁锢  防止ARP广播问题
vim /etc/rc.local  配置路由禁锢 自动执行
touch /var/lock/subsys/local
/sbin/route add -host 192.168.30.100 dev lo:0
vim /etc/sysctl.conf  
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
systemctl start httpd

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

在这里插入图片描述
挂载文件到web节点
在这里插入图片描述
在这里插入图片描述

配置keepalived

cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
systemctl restart keepalived.service

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

检查是否生效

先看看是否可以访问
在这里插入图片描述
在这里插入图片描述
关闭主keepalived服务器 在测试
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值