LVS+keepalived小白都看得懂也不来看?

1 高可用集群

1.1 一个合格的集群应该具备的特性

1.负载均衡
LVS Nginx HAProxy F5
2.健康检查(使得调度器检查节点状态是否可以正常运行,调度器(负载均衡器)也要做健康检查)for调度器/节点服务器 keeplived hearbeat
健康检查(探针)的方式:
调度器的检查方法:
健康调度器是用于监控和管理节点服务器的工具。他定期发送请求到节点服务器,并根据响应结果判断节点服务器的健康状态
节点服务器的检查方法:

1.发送心跳消息 ping/pong

2.TCP的端口检查(向目标主机的IP:PORT 发送TPC连接请求 如果TCP连接成功三次握手成功则认为健康检查探测成功,如果三次握手失败,则认为健康检查探测失败)

3.HTTP URL检查 (向目标主机的http://IP:PORT/URL路径 发送HTTP GET请求方法,如果响应状态码返回2XX 3XX,则认为探测成功,如果响应状态码是4XX 5XX,则认为探测失败)

3.做故障转移(正常情况下由主来接受用户数据的转发,如果主挂掉了,则由备来接受用户数据的转发)
通过VIP漂移来实现主备切换(通过IP命令去生成的并不是真的漂移)

1.2 脑裂故障

现象:主服务器和备服务器同时拥有VIP地址
原因:因为主服务器和备服务器之间的通信链路中断导致备服务器无法收到主服务器发送的VRRP心跳消息(或VIP通告消息,通告消息默认通过组播消息发送也可以通过广播消息发送),备服务器误认为主服务故障了并通过IP命令生成VIP地址。
解决方法:关掉主服务器或者备服务器其中一个的keeplived服务
预防方法: 1.主服务器和备服务器之间添加双链路通信。2.在主服务器上添加脚本进行链路判断与备服务器通信链路是否中断,如果确实链路中断,则自行关闭keeplived服务。3.利用第三方应用或监控系统来检测是否发生脑裂故障,如果发发生脑裂故障,则通过第三方应用或监控系统紫星关闭主服务器或者备服务器上面的keeplived服务。
脚本思路:

2 keepalived

2.1 keepalive工具接受

专为LVS和HA设计的一款健康检查工具(nginx、haproxy都可用)

支持故障自动切换
支持节点健康状态检查

判断LVS负载调度器、节点服务器的可用性,当master出现故障及时切换到backup节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。

Keeplived 是一个基于VRRP协议来实现的LVS服务高可用反感,可以解决静态路由处现单点故障问题。

在一个LVS服务群集中通常有主服务(MASTE与R)和备服务器(BACKUP)两种角色的服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

2.2 Keepalived实现原理解剖

Keepalived采用VRRP热备份协议,实现Linux服务器的多机热备功能。

VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案
  • 由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务

  • 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态

  • 若当前子啊显得路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务。

双机热背的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
实现基于Web服务器的双机热备

2.3 Keeplived体系主要模块和作用:

  • core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析
  • VRRP模块:是来实现VRRP协议的
Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动P?
答案:Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器。然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器浮动IP地址。优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP
keepalived的抢占与非抢占模式:
抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP非抢占式俩节点state必须为bakcup,且必须配置nopreempt。注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。

3 防止发生脑裂现象的lvs+keepalive部署

过滤nginx服务的方法:lsof -i :80 ;ps -C nginx --no-header ; netstat -lntp | grep nginx ; pidof nginx ; killall -0 nginx ; ps aux | grep nginx |egrep -v "grep|quot;

主、被服务器安装keepalived 、 ipvsadm 、nginx (yum安装nginx需要repo包)

复制一份keepalived配置文件便于还原,并修改keepalived配置文件

修改配置内容

重启keepalived并查看虚拟网卡

保存策略并启动ipvsadm,查看VIP是否分发策略

调整 proc 响应参数,关闭Linux 内核的重定向参数响应

修改nginx配置文件,添加集群

把主服务器keepalived配置文件传给备服务器

修改备服务器配置文件

把主服务器nginx配置文件传给备服务器
web服务器设置,查看部署结果

关闭主服务器查看是否可以继续访问

4 LVS+keepalive的部署

卸载nginx服务,清除脚本和nginx部署测试结果

关闭主服务器查看是否可以访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/260297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS安装Python解释,CentOS设置python虚拟环境,linux设置python虚拟环境

一、安装python解释器 1、创建解释器安装的目录:/usr/local/python39 cd /usr/local mkdir python39 2、下载依赖 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel xz-devel …

AttributeError: module ‘_winapi‘ has no attribute ‘SYNCHRONIZE‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

赴日IT培训课程 程序员新思路!

先说好,跟国内相比,日本IT并不发达。日本IT是依托着日本传统强势的制造业和政府机关发展的,所以开发的大多数软件也是面向这些的,由于日本人的严谨态度,各种文档的编写层出不穷,不像国内程序员每天没日没夜…

RHCE8 资料整理(目录)

RHCE8 资料整理(目录) 第一篇 基本配置第二篇 用户及权限管理第三篇 网络相关配置第四篇 存储管理第五篇 系统管理第 六 篇 软件管理第 七 篇 安全管理第 八 篇 容器管理第 九 篇 自动化管理工具ansible的使用 第一篇 基本配置 入口 第1章 安装RHEL8 第…

docker搭建mysql8.0.32,实现主从复制(一主两从)

安装docker的步骤、使用命令就不写了,本文章是基于会使用docker、linux基本命令的基础上来写的。 开始步骤: 1. 拉取 mysql 镜像 docker pull mysql:8.0.32 2. 启动容器并运行mysql a. 准备mysql的配置文件(该配置文件是:mysq…

Windows下安装PostgreSQL

一、PostgreSQL介绍 是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网…

顶级加密混淆混淆工具测评:ipagurd

摘要 JavaScript代码安全需求日益增长,因此JavaScript混淆工具的使用变得广泛。本文将对专业、商业JavaScript混淆工具ipagurd进行全面评估,通过比较其功能、操作便捷性、免费试用、混淆效果等方面,帮助开发者选择适合自己项目需求的工具。 …

docker学习(十、搭建redis集群,三主三从)

文章目录 一、docker创建6个redis容器创建6个redis容器回顾各个属性含义 二、划分主从,3主3从划分主从查看状态查看节点信息 基础理论在这里有详细描述: docker学习(九、分布式存储亿级数据知识) 后续redis集群操作: d…

Java版直播商城免 费 搭 建:电商、小程序、三级分销及免 费 搭 建,平台规划与营销策略全掌握

随着互联网的快速发展,越来越多的企业开始注重数字化转型,以提升自身的竞争力和运营效率。在这个背景下,鸿鹄云商SAAS云产品应运而生,为企业提供了一种简单、高效、安全的数字化解决方案。 鸿鹄云商SAAS云产品是一种基于云计算的软…

虚幻学习笔记19—C++中使用时间轴

一、前言 在蓝图中可以很容易的创建一个时间轴,如图1.1.1所示为一个新建的时间轴,双击时间轴可以添加不同的轨道,分别有浮点、向量和事件,具体的可以自己去玩玩,这个在虚幻的开发中是非常常用的,最后创建的…

学习使用echarts图表中formatter的用法,格式化数字金额,控制x轴、y轴展示长度

学习使用echarts图表中formatter的用法,格式化数字金额,控制x轴、y轴展示长度 控制金额长度两位小数,并去除多余.00效果图 控制文字长度完整代码 控制金额长度 series: [{name: ,type: bar,sort: none,label: { //饼图图形上的文本…

【开源软件】最好的开源软件-2023-第四名 vaadin

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

【游戏篇】Scratch之饥饿的鱼

【作品展示】饥饿的鱼 操作:点击小绿旗,按下键盘方向或者利用鼠标移动,躲避大鱼的同时还要想办法吃到小鱼。

【C++高阶(八)】单例模式特殊类的设计

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 单例模式 1. 前言2. 设计一个不能被拷贝/继承的…

外贸业务员该如何写好一份有质感的年终总结?内附外贸大神例文

庄子云:人生天地之间,若白驹之过隙,忽然而已... 2023年注定是不平凡的一年,临近年终,你可能听到最多的关键词就是外贸有点难做。不管是因为什么,客观来说2023年的外贸之路确实不太平坦,最近胡塞…

4. 行为模式 - 中介者模式

亦称: 调解人、控制器、Intermediary、Controller、Mediator 意图 中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建…

Catboost算法助力乳腺癌预测:Shap值解析关键预测因素

一、引言 乳腺癌是一种常见的恶性肿瘤,对女性健康和生命造成严重威胁。乳腺癌的预测和治疗是当前研究的热点和难点。传统的预测方法主要基于临床病理学特征,但准确率有待提高。随着机器学习技术的发展,数据驱动的预测方法逐渐受到关注。Catbo…

由浅入深,一文读懂网络知识文集。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

【SpringMVC】SpringMVC的请求与响应

文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…

熔断,降级,限流

文章目录 熔断概念为什么需要熔断熔断器模型熔断策略 降级概念熔断和降级的关系熔断降级限时降级限流降级 参考文章 熔断和降级都是自我保护的一种机制,但二者又有所不同。 熔断 概念 “熔断”一词早期来自股票市场。熔断[Circuit Breaker]也叫自动停盘机制&#…
最新文章