keepalive简单配置

一、keepalive相关知识

1.1 keepalive介绍

keepalive即LVS集群当中的高可用架构,只是针对调度器的高可用。是高可用的HA架构。

keepalive就是基于VRRP协议来实现LVS高可用的方案。

  1. 组播地址

    224.0.0.18,根据组播地址进行通信,主备之间发送报文,确定对方是否存活

  2. 根据优先级判定主和备的位置

  3. 故障切换,主挂了,备来接替工作;主恢复了,备继续等待。

  4. 主备之间的切换是VIP地址的切换。

keepalive 是专门为了LVS而出现的,但是不是LVS专用的。

1.2 主、备 调度器

主调度器和备调度器(备可以是多台,一般一主一备)

在主调度器正常工作的时候,备完全处于冗余状态(待命)。备不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作。一般主调度器恢复功能之后,主会继续作为集群的入口,备回到冗余状态,这个取决于优先级。

keepalive就是调度器的高可用。

VIP地址主备之间的切换,主在工作时,VIP地址只在主上,主停止工作,VIP漂移到备服务器。

在主备优先级不变的情况下,主恢复工作,VIP会飘回到主服务器。

注意事项:

  1. 配优先级
  2. 配置VIP和真实服务器
  3. 主备的virtual_router_id要一致
  4. 主备的router_id要区分

1.3 脑裂

问:脑裂是什么?

HA架构(高可用架构)中的一个特殊现象,只要使用VIP地址代理的冗余模式的高可用,都有可能出现脑裂的问题。即主和备同时都有VIP地址。

主和备无法确定各自的身份,同时出现了VIP地址,两边都起来了,但两边都无法使用。

可能原因:

  1. keepalive的配置文件问题,IP地址配置冲突等
  2. 硬件问题:网卡,网线等故障
  3. 防火墙的策略,iptables的策略屏蔽了组播地址的广播,屏蔽了VRRP协议的报文
  4. 两台服务器的时间不同步,也可能导致这个问题
  5. 其他服务配置对keepalive的心跳线检测造成了干扰

怎么解决脑裂?

  1. 检查硬件,网卡,网线等
  2. 查看主备节点的keepalived日志,查看具体报错信息,定位问题
  3. 检查端口冲突和监听设置,确保其他服务没有占用keepalived使用的VIP或者监控端口。
  4. 查看配置文件,检查IP地址配置、心跳线检测的间隔和超时时间等配置是否合理
  5. 查看防火墙策略,确定心跳线检测消息没有被屏蔽
  6. 查看服务器网络状态,以及时间是否同步

二、keepalive相关配置

安装keepalive服务:

yum -y install ipvsadm keepalived

2.1 keepalive模块

  • core 模块:keepalive的核心模块,负责主进程的启动、维护以及全局配置文件的加载

  • vrrp 模块:实现vrrp协议的模块,也就是主功能模块

  • check 模块:负责健康检查。也可以检查后台真实服务器的情况。

2.2 keepalive的配置文件

cd /etc/keepalived
#编辑前先备份
cp keepalived.conf keepalived.conf.bak.current_date
vim keepalived.conf
#在global_defs中
smtp_server 127.0.0.1
router_id lvs_01
#主备的的id不能一样
vrrp_strict
#(取消注释,新版默认应该是取消的)
vrrp_iptables
#添加这一行,否则重启keepalive会添加防火墙规则drop所有keepalive的请求vrrp_instance VI_1 中
state MASTER
#备的state是 BACKUP
interface ens33
virtual_router_id 10
#下面是VIP地址
virtual_ipaddress{20.0.0.100
}virtual_server 20.0.0.100 80 {
#在VIP模块中设置后台真实服务器real_server 20.0.0.21 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 20.0.0.21 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}
#下面的删除systemctl restart keepalived

keepalive是专门为LVS打造的,但不是只能为LVS服务。

keepalive也可以和Nginx、Haproxy配合使用

2.3 keepalive+Nginx实现高可用

例:

nginx1 :主 20.0.0.21 keepalive

nginx2 :备 20.0.0.22 keepalive

nginx1是主服务器,监控nginx1的服务状态,如果nginx1的服务停止,需要自动停止nginx1的keepalive,这样VIP才会漂移到nginx2上。可用脚本实现自动关闭keepalive。如果主的nginx服务恢复,VIP再漂移到nginx1上。

nginx1,主的配置

编辑检查nginx状态的脚本

vim /opt/check_nginx.sh
#内容如下
#!/bin/bash
/usr/bin/curl -I http://localhost &>/dev/null
#指定curl命令的路径调用curl命令
#curl -I 仅查看http响应头部信息,而不用下载页面内容,常用于状态检查
if [ $? -ne 0 ]
thensystemctl stop keepalived
fi

配置keepalived

vim /etc/keepalived/keepalived.confvrrp_script check_nginx {
#定义了一个名为 check_nginx 的 VRRP 脚本script "/opt/check_nginx.sh"#指定脚本位置interval 5#间隔5秒
}

在vrrp_instance VI_1 中添加 追踪脚本组 track_script ,vrrp会跟踪和监控脚本check_nginx

vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 10track_script {check_nginx}
}

因为要求只要实现主备切换,后台不存在真实服务器,所以下面的模块都可以删除。只保留到vrrp_instance模块就可以了。

验证:

在nginx1 上 ip addr查看,可以看到VIP20.0.0.100在主服务器上

客户机访问VIP地址,获得nginx1的web服务

关闭nginx1的nginx服务,过5秒,客户机访问VIP地址,获得nginx2的web服务,VIP地址漂移到nginx2上。

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

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

相关文章

10.1 标注、注记图层和注记整体说明

文章目录 前言标注、注记图层和注记QGis中的标注QGis中的注释(Annotation)图层QGis中的注记 总结 前言 介绍标注、注记图层和注记说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 标注、注记图层和注记 有时地图需要使用一些文字信息说明其中的地理要素或其…

OSX MongoDB 安装与配置指南

OSX MongoDB 安装与配置指南 MongoDB 是一款流行的开源 NoSQL 数据库,广泛用于数据存储、索引和实时分析。本指南将详细介绍在 macOS(OSX)操作系统上安装和配置 MongoDB 的步骤。 1. 安装 MongoDB 1.1 使用 Homebrew 安装 Homebrew 是 macOS 上的包管理器,可以简化软件…

如何落地实际场景,解决跨境传输共性需求?免费白皮书可下载

在全球化的背景下,海外市场对于数据驱动的产品和服务的需求不断增加,各行业数据跨境传输也日趋频繁,在这种前景下,越来越多的企业寻求更深度的跨国业务及合作,因此,企业数据跨境流动也成为了势不可挡的趋势…

51单片机嵌入式开发:11、 STC89C52RC 实现一个滑动的led点阵程序

STC89C52RC 实现一个滑动的led点阵程序 1 概述2 LED点阵介绍2.1 LED概述2.2 LED点阵注意事项 3 LED点阵原理3.1 Led点阵内部电路3.2 原理图电路 4 软件实现点阵图案的滑动4.1 软件工程代码4.2 Protues仿真 5 扩展74HC595(后续专题开展)6 总结 第十一节 1…

如何制定高效的媒体公关解决方案

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体公关解决方案是指企业或组织为提升品牌形象、塑造公众认知、应对危机事件等目的,通过媒体渠道制定并实施的一系列公关策略和行动计划。这一解决方案旨在通过有效的媒体沟…

【信息系统项目管理师】高项论文开头/过度/结尾

文章目录 开头过度结尾 概要叙述你参与管理的信息系统项目(项目的背景、项目规模、发起单位、目的、项目内容、组织结构、项目周期、交付的成果等),并说明你在其中承担的工作(项目背景要求本人真实经历,不得抄袭及杜撰…

socket功能定义和一般模型

1. socket的功能定义 socket是为了使两个应用程序间进行数据交换而存在的一种技术,不仅可以使同一个主机上两个应用程序间可以交换数据,而且可以使网络上的不同主机间上的应用程序间进行通信。 2. 图解socket的服务端/客户端模型

深度解析PHP8 JIT技术:如何助力网站性能飞跃

本文由 ChatMoney团队出品 在Web开发领域,提高网站的响应速度一直是开发者和企业所追求的目标。随着技术的不断进步,PHP8的发布为我们带来了一个全新的工具——JIT(Just-In-Time)加速器,它以其独特的优势,成…

AngularJS 输入验证

AngularJS 输入验证 AngularJS 是一个强大的前端框架,它允许开发者轻松构建复杂的单页应用程序。在处理用户输入时,确保数据的准确性和完整性是非常重要的。AngularJS 提供了一套内置的输入验证机制,可以帮助开发者实现这一目标。本文将详细介绍 AngularJS 的输入验证功能,…

广告投放的智能优化:Kompas.ai如何提高广告效果

在数字广告领域,智能优化已成为提升广告投放效果和投资回报率(ROI)的关键。Kompas.ai,一款先进的广告智能优化工具,利用数据分析和机器学习技术,帮助广告主实现更精准、高效的广告投放。 智能优化在提升广告效果中的作用 智能优化…

30.【C语言】详解printf

1.printf&#xff08;print formate&#xff09;输入函数 01.简单使用 调用前要引用头文件 #include <stdio.h> printf("abc"); 默认情况下打印完光标停留在同一行 \n可以换行 printf("abc\n"); ​ printf("ab\nc"); ​ printf(…

万用表数学功能中的限值(Limits)功能

万用表数学功能中的 限值(Limits)功能 有限值功能的仪表设置上下限的使用方法 创新向上 利向未来 通达世界 限值检查是指示有多少次采样超过指定限值&#xff0c;并且还指示何时超过此限值的数学功能。 限值(Limits)功能 以34465A为例&#xff1a;可以通过[Math] - Limi…

【对顶堆 优先队列】2102. 序列顺序查询

本文涉及知识点 对顶堆 优先队列 LeetCode 2102. 序列顺序查询 一个观光景点由它的名字 name 和景点评分 score 组成&#xff0c;其中 name 是所有观光景点中 唯一 的字符串&#xff0c;score 是一个整数。景点按照最好到最坏排序。景点评分 越高 &#xff0c;这个景点越好。…

CyberVadis认证是什么

CyberVadis认证是一项全球性的、权威的、基于云的网络安全性评估和认证项目。它是由Altimeter公司开发的&#xff0c;专门针对云计算服务提供商、数据中心、软件即服务(SaaS)供应商、安全咨询服务公司和内部IT部门而设计的。 CyberVadis认证旨在评估和验证组织在网络安全方面的…

[QT开发_音乐播放器项目笔记00]

目录 一&#xff1a;常用类 01 QApplication&#xff1a;管理应用程序的控制流和主要设置。 02 QWidget&#xff1a;所有用户界面的基础类&#xff0c;提供窗口和控件的基本功能。 03 QMainWindow&#xff1a;提供主窗口的框架&#xff0c;包括菜单、工具栏和状态栏。 04 …

MongoDB常用命令大全

文章目录 一、MongoDB简介二、服务启动停止备份三、数据库相关四、集合操作五、文档操作六、其他常用命令 一、MongoDB简介 MongoDB是一款流行的NoSQL数据库&#xff0c;以其灵活的文档模型、高可用性、易于扩展等特性而受到广泛关注。 MongoDB 是由C语言编写的&#xff0c;是…

【Java】stream流

什么是stream流 stream流可以通过简单的方式去处理一个数据集合&#xff0c;而不用通过冗杂的循环遍历 Stream中的元素是以Optional类型存在的 optional 允许元素为空 stream流有什么特性 stream不存储数据&#xff0c;而是按照特定的规则对数据进行计算&#xff0c;一般会输…

C# SM1、SM2、SM3、SM4如何使用

在中国&#xff0c;SM系列算法&#xff08;SM1、SM2、SM3、SM4&#xff09;是国家商用密码管理局发布的密码算法标准&#xff0c;广泛应用于信息安全领域。然而&#xff0c;需要注意的是&#xff0c;由于这些算法涉及国家安全和商业秘密&#xff0c;它们的实现细节和具体使用方…

【EXCELL技巧篇】使用Excel公式,获取当前 Excel的Sheet页的名字

【通知】&#xff1a; 正式跟大家说个难过的消息&#xff0c;本来在「中国朝代史」结束后&#xff0c;开启的下一个专栏「中国近代史」前面几期做的还好好的&#xff0c;可是今天起正式通知审核不过&#xff0c;因为一些原因。 其实我对于历史这一块我还是很感兴趣的&#xff0…

GB35114国密算法-GMSSL

C有个三方库-GMSSL是可以进行GB35114所需要的SM2、SM3、SM4等加解密算法的&#xff0c;但是使用国密算法是需要申请报备的 GmSSL是由北京大学自主开发的国产商用密码开源库&#xff0c;实现了对国密算法、标准和安全通信协议的全面功能覆盖&#xff0c;支持包括移动端在内的主流…