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

news2024/11/15 17:42:30

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.coloradmin.cn/o/1325063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

aws配置以及下载 spaceNet6 数据集

一:注册亚马逊账号 注册的时候,唯一需要注意的是信用卡绑定,这个可以去淘宝买,搜索aws匿名卡。 注册完记得点击登录,记录一下自己的账户ID哦! 二:登录自己的aws账号 2.1 首先创建一个用户 首…

2023 英特尔On技术创新大会直播 |AI小模型更有性价比

前言: 今年是引爆AI的一年,从幼儿园的小朋友到80岁的老奶奶都认识AI,享受AI带来的便捷,都在向市场要智能,但AI的快速发展离不开底层硬件设施的革新。 英特尔是全球知名的半导体公司,专注于计算机处理器和芯…

FPGA模块——以太网芯片MDIO读写

FPGA模块——以太网MDIO读写 MDIO接口介绍MDIO接口代码(1)MDIO接口驱动代码(2)使用MDIO驱动的代码 MDIO接口介绍 MDIO是串行管理接口。MAC 和 PHY 芯片有一个配置接口,即 MDIO 接口,可以配置 PHY 芯片的工…

【实时绘画】krita + comfyUI 实时绘画 儿童海报

1:打开comfyUI 2: 打开krita 打开 cd custom_nodes 输入命令 安装控件 git clone https://github.com/Acly/comfyui-tooling-nodes.git

人工智能与底层架构:构建智能引擎的技术支柱

导言 人工智能与底层架构的交融塑造了智能系统的基石,是推动智能时代发展的关键动力,本文将深入研究人工智能在底层架构中的关键作用,以及它对智能引擎的技术支持,探讨人工智能在计算机底层架构中的作用,以及这一融合如…

第11章 《GUI》Page404 课堂作业,验证鼠标事件的坐标,GUI编程如何在控制台输出调试

首先选中工程,点击右键,选择Properties 在Build targets一栏里,将Type(下拉列表)改为Console application 然后在代码中写上调试输出语句,就可以了 从图中,我们可以看出,我们划线的起点非常接近窗口左上角(…

JWT身份验证

JWT知识点 jwt,全称 json web token, JSON Web 令牌是一种开放的行业标准 RFC 7519 方法,用于在两方之间安全地表示声明。 详情可以参考: hhttps://jwt.io/introduction 1. 数据结构 JSON Web Token由三部分组成,它们之间用圆点.进…

LLama Factory 安装部署实操记录(二)

1. 项目地址 GitHub - hiyouga/LLaMA-Factory: Easy-to-use LLM fine-tuning framework (LLaMA, BLOOM, Mistral, Baichuan, Qwen, ChatGLM)Easy-to-use LLM fine-tuning framework (LLaMA, BLOOM, Mistral, Baichuan, Qwen, ChatGLM) - GitHub - hiyouga/LLaMA-Factory: Easy…

javascript_0

Javascript是一种脚本语言&#xff0c;可以用来更改页面内容&#xff0c;控制多媒体&#xff0c;制作图像、动画等等 例 修改页面内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport…

LuaJava操作Java的方法

最近在学习lua&#xff0c;然后顺便看了下luaj&#xff0c;可能用的人比较少&#xff0c;网上关于luaj的文章较少&#xff0c;其中在网上找到这个博主的相关文章&#xff0c;很详细&#xff0c;对于要学习luaj的小伙伴可以两篇一起查看&#xff0c;本文在此基础上进行扩展。 …

DDPM详解

DDPM详解 参考 https://www.bilibili.com/video/BV1pa411u7G3/ 系列 DDPM 可以分为 Diffusion 和 Reverse 两个阶段。其中 Diffusion 阶段通过不断地对真实图片添加噪声&#xff0c;最终得到一张噪声图片。而 Reverse 阶段&#xff0c;模型需要学习预测出一张噪声图片中的噪声部…

LLM 和搜索引擎是一样的吗?

在这篇文章中&#xff0c;了解更多关于 AI 大型语言模型&#xff08;如 ChatGPT&#xff09;的潜力。了解他们如何彻底改变生产力&#xff0c;并探索他们与搜索引擎不断变化的关系。 像 ChatGPT 这样的 AI 大型语言模型 &#xff08;LLM&#xff09; 已经风靡全球&#xff0c;并…

【力扣】148.排序链表

148.排序链表 怎么说&#xff0c;这道题看上去挺简单的&#xff0c;但是要搞清楚的知识点那还真不少&#xff0c;刷题好痛苦&#xff0c;但是要刷&#xff01;嘿嘿~ 首先&#xff0c;要搞懂归并排序&#xff0c;然后是递归。这道题我刚开始想的是递归&#xff0c;但是题友说时…

macOS制作dmg包

macOS制作dmg包 准备&#xff1a;磁盘工具、以及要制作的软件&#xff0c;这里以Firefox为例 图片素材 背景图&#xff1a; 找到Firefox&#xff0c;点击显示简介&#xff0c;查看包的大小 打开磁盘工具 文件–>新建映像–>空白映像 填写信息&#xff0c;大小…

vue的语法模板与数据绑定的说明

vue的两大模板语法&#xff1a; 1.插值语法 2.指定语法 插值语法&#xff1a;{{}} 功能&#xff1a;用于解析标签体的内容 写法&#xff1a;{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性 指定语法&#xff1a; 功能:用于解析标签(包括:标签属性、标…

w13渗透测试实战之https账号密码捕抓

此次实验需要配合arp欺骗,不知道arp欺骗的&#xff0c;可以查看这篇w13渗透测试实战之ARP欺骗攻击&#xff08;ARP断网攻击&#xff09; 一、实验环境 攻击机&#xff1a;linux Kali 靶机&#xff1a;window 7 网络环境&#xff1a;虚拟机NAT 网关&#xff1a;192.168.89.2实…

百度侯震宇:AI原生与大模型将从三个层面重构云计算

12月20日&#xff0c;2023百度云智大会智算大会在北京举办&#xff0c;大会以「大模型重构云计算&#xff0c;Cloud for AI」为主题&#xff0c;深度聚焦大模型引发的云计算变革。 百度智能云表示&#xff0c;为满足大模型落地需求&#xff0c;正在基于「云智一体」战略重构…

Xcode 恢复Discard Changes

当开发的时候&#xff0c;Discard All Changes后 文件的修改都被放弃了&#xff0c;怎么才可以撤销更改呢 Xcode和Git没有这个功能&#xff0c;Finder可以实现 首先我们先退出Xcode用TextEdit打开你想恢复的文件转到文件 > 还原到 > 浏览所有版本...选择你想恢复的版本即…

亚信安慧AntDB:支撑中国广电5G业务的数据库之力

自2019年6月获得5G牌照以来&#xff0c;中国广电积极利用700MHz频谱资源&#xff0c;迅速崛起为第四大运营商&#xff0c;标志着其在数字通信领域取得的巨大成就。通过与中国移动紧密合作&#xff0c;共建共享基站已超过400万座&#xff0c;为实现自主运营和差异化竞争提供了坚…

vue2 组件传递数据

向子组件传递数据通过Props 1.创建子组件 详细步骤&#xff1a; 1.在components创建子组件 2.等父组件接受到参数后通过Props来接受父组件传递过来的数据 <template><div id"app"><h2>title:{{ title }}</h2><p>tips:{{ tips }}<…