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

文章目录

  • 一、keepalived概念和原理
    • 原理
  • 二、DR模式的流量方向
    • 1.请求处理过程
    • 2.解决ARP问题
  • 三 搭键LVS+keepalived
    • 配置主从负载均衡器
    • 配置web节点
    • 配置keepalived
    • 检查是否生效

一、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

架构图

Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第1张图片

配置主从负载均衡器

两台配置一样

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 

Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第2张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第3张图片

在这里插入图片描述
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第4张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第5张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第6张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第7张图片

配置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

在这里插入图片描述
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第8张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第9张图片

Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第10张图片
挂载文件到web节点
在这里插入图片描述
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第11张图片

配置keepalived

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

Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第12张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第13张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第14张图片

检查是否生效

先看看是否可以访问
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第15张图片
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第16张图片
关闭主keepalived服务器 在测试
在这里插入图片描述
Linux运维集群篇 搭建LVS+keepalived(DR)负载均衡架构实例_第17张图片

你可能感兴趣的:(集群)