一、实验环境:

  • 母盘为redhat7.6的操作系统,快照出四台虚拟机
  • 给真机和虚拟机都加上地址解析,如上图所示
  • 通过真机的httpd服务给虚拟机搭建7.6的网络软件仓库
  • 关闭防火墙,selinux状态设为disabled

二、lvs:

LVS:
LVS的基本专业术语:

项目 Value
DS Director Server。指的是前端负载均衡器节点
RS Real Server。后端真实的工作服务器
VIP 向外部直接面向用户请求,作为用户请求的目标的IP地址
DIP Director Server IP,主要用于和内部主机通讯的IP地址
RIP Real Server IP,后端服务器的IP地址
CIP Client IP,访问客户端的IP地址

lvs四种工作模式:

项目 Value
DR 直接路由模式
TUN 隧道模式
NAT 路由转发模式
fullnat模式

三、lvs负载均衡:

本次实验使用lvs的DR工作模式和轮询调度算法实现lvs的负载均衡:
DR工作模式
当用户访问lvs调度器(vs)上的vip时,是通过修改请求报文的目标mac地址,在数据链路层通过调度算法将请求转发给真实服务器(rs),而真实服务器响应后的处理结果直接返回给客户端用户;所以说,vs 和rs 要都有vip,只是用arptables 处理了rs在数据链路层arp转发。由于必须处于同一vlan下,受到了局限性,但是其工作效率很高。
client --> vs --> rs --> client
DR的不足:

  • LVS - RS 间必须在同一个VLAN
  • RS上绑定VIP,风险太大

(1)安装lvs管理器

yum install -y ipvsadm


(2)在server1 上绑定VIP地址

ip addr add 172.25.4.100/24 dev eth0

(3)添加调度算法、虚拟服务:

ipvsadm -A -t 172.25.4.100:80 -s rr       # 添加虚拟服务、rr轮询调度算法
ipvsadm -a -t 172.25.4.100:80 -r 172.25.4.2:80 -g    #将虚拟服务关联到真实服务上
ipvsadm -a -t 172.25.4.100:80 -r 172.25.4.3:80 -g


(4)在server2,server3上配置http服务编写发布内容,并绑定VIP地址:

[root@server2 ~]# yum install -y httpd
[root@server2 ~]# systemctl enable --now httpd.service
[root@server2 ~]# echo server2 > /var/www/html/index.html
[root@server2 ~]# ip addr add 172.25.4.100/32 dev eth0[root@server3 ~]#  yum install -y httpd
[root@server3 ~]#  systemctl enable --now httpd.service
[root@server3 ~]# echo server3 > /var/www/html/index.html
[root@server3 ~]#  ip addr add 172.25.4.100/32 dev eth0

(5)在server2、server3上安装部署arp火墙访问规则:

[root@server2 ~]# yum install arptables -y
[root@server2 ~]# systemctl start arptables
[root@server2 ~]# arptables -A INPUT -d 172.25.4.100 -j DROP
[root@server2 ~]# arptables -A OUTPUT -s 172.25.4.100 -j mangle --mangle-ip-s 172.25.4.2
[root@server2 ~]# arptables -nL[root@server3 ~]# yum install arptables -y
[root@server3 ~]# systemctl start arptables
[root@server3 ~]# arptables -A INPUT -d 172.25.4.100 -j DROP
[root@server3 ~]# arptables -A OUTPUT -s 172.25.4.100 -j mangle --mangle-ip-s 172.25.4.3
[root@server3 ~]#  arptables -nL


(6)在真机上测试:

[root@foundation40 ~]# for i in {1..10}; do curl 172.25.4.100; done


成功实现负载均衡。

健康检测 – 某台RealServer down了,怎么办?
LVS冗余 – LVS本身down了,怎么办?
为了解决这些问题,我们选择了keepalive

四、keepalive+lvs实现高可用:

利用keepalive中的vrrp协议实现高可用,TCP_CHECK实现对后端rs进行健康检测
实验会用到第四台虚拟机:
(1)在server1、server4上安装keepalive:

[root@server1 ~]# yum install keepalived -y
[root@server4 ~]# yum install   ipvsadm keepalived -y

(2)修改server1和server4的配置文件:

[root@server1 ~]# vim /etc/keepalived/keepalived.conf #下文是完整的server1的keepalive的配置文件! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from keepalived@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 55priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.4.100}
}virtual_server 172.25.4.100 80 {delay_loop 6lb_algo rrlb_kind DR#persistence_timeout 50protocol TCPreal_server 172.25.4.2 80 {weight 1TCP_CHECK{connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 172.25.4.3 80 {weight 1TCP_CHECK{connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}[root@server1 ~]# scp /etc/keepalived/keepalived.conf  server4:/etc/keepalived/keepalived.conf[root@server4 ~]# vim /etc/keepalived/keepalived.conf

server4的配置文件只需要修改状态和优先级:

(3)开启服务:

[root@server1 ~]# systemctl start keepalived.service[root@server4 ~]# systemctl start keepalived.service

(4)测试结果:

当关闭主用机server1的keepalive:

[root@server1 ~]# systemctl stop keepalived.service

客户端不受任何影响:

vip转移,策略转移:



重新开启server1的keepalive后:

[root@server1 ~]# systemctl start keepalived.service

策略和vip都会自己切回来:

同样客户端的负载均衡不受影响,高可用完成。

lvs负载均衡+keepalive高可用相关推荐

  1. keepalive+lvs负载均衡及高可用总结

    keepalived实现两个主要的功能: 1.负载均衡,2.高可用(消除单点故障) keepalive负载均衡的实现方式: keepalive其实是通过lvs实现负载均衡的,在keepalive中可以 ...

  2. LVS实现负载均衡及高可用

    LVS实现负载均衡及高可用 1 实验环境 1.1 虚拟机最小化封装 1.1.1 虚拟机母机安装 1.1.2 清理和压缩母机 1.1.3 创建子机 1.2 名词理解 2 lvs的工作模式 2.1 NAT ...

  3. nginx负载均衡和高可用

    代理和负载均衡的区别 代理负责把连接请求直接转发到后台某个web节点     负载均衡负责把请求使用某种调度算法分散发布给后台所有web节点 ----------------------------- ...

  4. keepalived介绍和keepalived实现nginx负载均衡机高可用

    1. keepalived简介 1.1 keepalived是什么? Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...

  5. 用haproxy结合keepalived实现基于LNMP的负载均衡和高可用

    今天我们讲haproxy结合keepalived实现LNMP的负载均衡和高可用,现在的公司大部分都基于haproxy实现负载均衡.下面以一个事例去给大家详细讲解如何去实现: 一.用haproxy结合k ...

  6. 微服务负载均衡实现高可用_使用负载平衡实现大容量可用性

    微服务负载均衡实现高可用 Written by Yona Gidalevitz 由Yona Gidalevitz撰写 Most users of the web are blissfully unaw ...

  7. TCP接入层的负载均衡、高可用、扩展性架构

    转载自 TCP接入层的负载均衡.高可用.扩展性架构 一.web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡.整个架构分三层: 上游调用层 ...

  8. Keepalived+LVS+Nginx负载均衡之高可用

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致 ...

  9. LVS的三种负载均衡以及高可用原理(VS/NAT、VS/TUN、VS/DR)

    LVS LVS(Linux Virtual Server)是一个虚拟的服务器集群(Cluster)系统,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务 ...

最新文章

  1. 华盛顿大学《生成模型》2020秋季课程完结,课件、讲义全部放出
  2. 同学遇见过的面试问题
  3. wp7开发官方教程和开发包
  4. ArcGIS实验教程——实验二十五:大型商场选址经典案例
  5. 用python实现流程自动化_Python自动化开发 - 流程控制
  6. 532 -数组中的K-diff对
  7. php 调用父类变量,PHP-通过实例化父类访问常量
  8. 面试题--------9、mysql的drop delete truncate 分别在什么场景下使用
  9. react-router 4v 路由嵌套问题
  10. 解决办法:error: unknown type name ‘__int64‘
  11. 为何数据视觉化越来越火
  12. 802d简明调试手册_802d简明调试手册.pdf
  13. LaTeX 设置图片caption左对齐
  14. 微光集市-登陆后用户对购物车的操作(版本4.0)
  15. 使用webp进行图像压缩
  16. 什么是Hbuilder?
  17. ssh免密登录服务器
  18. 虹科技术 | 终端入侵防御 | 在重大攻击中发现新的Babuk勒索软件
  19. nvidia dch 驱动 与windows 不兼容_Adobe 2020系统兼容性报告,不支持视频驱动程序!完美解决方案...
  20. 鸿蒙电视投屏软件,鸿蒙打造 未来电视就这样!荣耀智慧屏 PRO 深度评测

热门文章

  1. keybest多媒体信息发布系统-信息发布系统-公共信息显示系统
  2. 如何才能让自己更有魅力
  3. 使用预处理的卷积神经网络来检测猫狗图片
  4. 解决MOSS07所在服务器,log文件剧增的办法 、转移日志文件路径
  5. python flask web开发入门与项目实战 pdf_Python Flask Web开发入门与项目实战
  6. [iOS基础控件 - 5.3] 电台APP可滚动主界面(UIScrollView制作)
  7. 34、CSS进阶——行高的取值以及常见的长度单位
  8. Java和Spring的六边形架构:在代码中体现“六角形建筑”
  9. 车载多媒体音频协议转换器
  10. Java小程序后台管理系统