一、keepalived是什么?

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的。Keepalived 是以 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议为实现基础的。

二、问题解决

1.某台RS down (安全监测)

如果停止server2的httpd服务,进行负载均衡测试

systemctl stop httpd.service

此时curl 172.25.0.100 调度器依然正常工作,但是客户端将会有错误连接提示(不合理),这就说明调度器并不关心后端real server的状态,即使已经down掉了也依然会对其进行调度

解决方法:
调度器(server1)安装 keepalived (健康检测,高可用)

编辑配置文件

root@localhost :邮件通知,如果主机联网的话可以写外部邮箱,用于通知集群状态,如果写localhost(本机)的话需要安装mailx;
notification_email_from keepalived@localhost:邮件发送方;
#vrrp_strict :禁掉这个选项,这一参数功能是在出问题时抓取数据包;

vrrp_instance VI_1 :指定 keepalived 的角色,MASTER 表示此主机是主服务器,BACKUP 表示此主机是备用服务器;
interface eth0:指定网卡;
virtual_router_id 51:虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。 即同一vrrp_instance下,MASTER和BACKUP必须是一致的;
priority 100:定义优先级,数字越大,优先级越高(0-255),在同一个vrrp_instance下,MASTER 的优先级必须大于 BACKUP 的优先级;

virtual_server 172.25.1.100 80:这部分相当于将lvs的策略以文本的方式写出来了,集群将会根据这部分内容来制定lvs策略;
delay_loop 6:每隔6秒钟对后端做一次健康检查;
lb_algo rr:定义调度算法;
lb_kind DR:lvs模式;
persistence_timeout 50 :50秒内同一个客户端发过来的请求将会交给同一个后端处理,为了实验效果,将其注释。

修改完毕之后重启服务:systemctl start keepalived;

此时删掉server1上的虚拟ip172.25.0.100

ipvsadm -C :清除LVS的策略规则的所有记录;
ipvsadm -ln:查看当前连接情况(-ln不用解析)

此时重启keepalived服务后,vip自动添加到server1上

轮询正常

停止server2的http服务

调度器依然正常工作,但是客户端不在有错误连接提示,这就说明调度器上的keepalived对后端RS进行了健康检测,不再让server2提供服务

查看日志,发现有server2 down掉的邮件信息

2.lvs down (高可用)

解决方法:创建虚拟机快照文件server4作BACKUP(高可用(master>backup)),同样的修改其主机名、IP

server4安装keepalived,并拷贝server1的keepalived.conf文件

yum -y install keepalived

编辑配置文件,修改其state为BACKUP;优先权为50,重启keepalived服务

vim /etc/keepalived/keepalived.conf

安装ipvsadm(用于管理LVS的策略规则)

yum install ipvsadm -y

systemctl restart keepalived.service  重启keepalived

ipvsadm -ln:查看当前连接情况

之后查看server4的日志,可以看到此时的server4是BACKUP

当server1停止keepalived服务后

systemctl stop keepalived.service

再次查看server4的日志,可以看到此时的server4是MASTER

仍然不影响客户端的正常访问,调度依然可以进行

查看vip所对应的MAC,此时正是server4(master)的MAC

再次开启server1的 keepalived服务后

轮询正常, 过滤得到172.25.0.100的MAC地址是server1的MAC地址

因为server4为BACKUP(优先级低)

Linux自动化运维——LVS+Keepalived相关推荐

  1. Linux自动化运维—LVS

    一.LVS是什么? 1.LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,可伸缩网络服务的几种结构.lvs 负载均衡根据目标地址和目标端口实现 ...

  2. Linux企业运维——LVS负载均衡

    Linux企业运维--LVS负载均衡 文章目录 Linux企业运维--LVS负载均衡 一.LVS简介 二.DR模式 三.使用DR模式实现负载均衡 四.问题解决 五.LVS的10个调度算法简介 一.LV ...

  3. linux运维脚本编写,最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本...

    最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本 大家可以通过参考下面的课程学习目录,就会发现单单只从目录上来分析就知道这是一部非常系统的Shell自动化脚本运 ...

  4. linux自动化运维ansible

    linux自动化运维ansible 一.概述 二.安装 1.配置安装源 2.安装 3.查询版本信息 三.设置主机清单 1.添加ip及账号信息 2.修改主配置文件 3.测试是否成功 四.模块应用 1.模 ...

  5. 自动化要不要学python-老男孩linux自动化运维|做人工智能为什么要学Python呢?

    Python是一种通用的脚本开发语言,比其他编程语言更加简单.易学,其面向对象特性甚至比Java.C#..NET更加彻底,非常适合快速开发,Python在软件质量控制.开发效率.可移植性.组件集成.库 ...

  6. Linux 自动化运维工具 ansible

    文章目录 1.简介 2.安装 3.常用命令选项说明 4.使用 4.1.执行远程命令 4.2.执行远程脚本 4.3.分发文件到远程服务器 4.3.1.复制单个文件 4.3.2.复制压缩文件到远程并解压 ...

  7. Linux自动化运维工具ansible详解

    文章目录 认识ansible ansible的组成 ansible的相关文件 ansible的使用 ansible的常用模块 1.copy模块 2.fetch模块 3.command模块 4.shel ...

  8. Linux自动化运维部署+运维

    自动化部署及配置(Cobbler/Kickstart) 红帽发布的网络安装服务器套件 Cobbler可以说是一大Linux装机利器,可以快速的建立网络安装环境,据说比Kickstart还要好用. 分布 ...

  9. Linux自动化运维工具 老男孩Linux云计算培训

    Linux运维人员必会开源运维工具体系 说明:不同的技术人员,在不同的阶段确定知识边界非常重要,否则,虽然是千里马,但是不知道终点在哪,最终累死也达不到目标. 例如:拿8K要学多少知识,拿15K又要学 ...

最新文章

  1. 简述平均池化和最大池化
  2. STM32学习笔记之__attribute__ ((at())绝对定位分析
  3. 中国学前教育行业投资机会评估与运营展望规划报告2022版
  4. 按作用域分的话 php的变量可分为,mysql全局变量表
  5. SpringCloud 配置安全验证、服务消费端处理、无状态 Session 配置、定义公共安全配置程序类
  6. 华为云DevCloud重金悬赏,开发者大赛等你来战!
  7. java学习_Java编程学习难不难 怎样才能快速入门Java
  8. AUTOSAR从入门到精通100讲(六)-Multicore-多核存储优化
  9. dropdownlist ajax联动,asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例...
  10. range作用于对象global失败_彻底弄懂JavaScript作用域问题
  11. SATI--文献题录开源程序
  12. 蓝桥杯 等差素数列(python实现)
  13. Java、JSP房产中介房屋信息管理系统
  14. JAVA毕业设计淮安城市开放大学实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库
  15. php找零页面,JS实现找零张数最小
  16. 二、IAR for ARM中STM32项目创建及其启动文件分析
  17. 一文教你搞懂C语言的Q格式使用
  18. 心血来潮,今天也搞个BLOG
  19. jmeter接口测试及详细步骤
  20. Unity延迟几秒执行一个方法小工具

热门文章

  1. C语言单向链表的逆序输出
  2. Redis数据结构简介
  3. 08和8的区别,二进制、八进制、十进制、十六进制。
  4. 去除逍遥模拟器的广告
  5. JS延迟5秒加载方法
  6. 一款优秀的智慧社区系统应具备哪些功能
  7. 11.9支付宝线上支付接口使用
  8. trixbox不相信眼泪
  9. cad在布局怎么调比例_在CAD布局中如何设置视口比例?
  10. 虚幻4打包安卓的问题