LVS+Keepalivedd

news2024/11/15 21:30:03

Keepalived

  • 一、Keepalived及其工作原理
  • 二、实验
    • 非抢占模式的设置
  • 三、脑裂现象
  • 四、Nginx高可用模式

一、Keepalived及其工作原理

keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可用解决静态路由出现的单点故障问题。
在一个LVS服务集群中通常有主服务器master和备用服务器backup两种角色的服务器,但是对外表现为一个虚拟IP(VIP),主服务器会发哦是那个VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块,分别是core、check、和vrrp

  • core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析
  • vrrp模块:实现vrr[协议,调度器之间的健康检查和主备切换
  • check模块:负责健康检查,常见的方式有端口检查及URL检查,节点服务器的健康检查

二、实验

主DR服务器:192.168.136.51
备DR服务器:192.168.136.52
web服务器1:192.168.136.53
web服务器2:192.168.136.54
vip:192.168.136.188
客户端:192.168.136.55

1.配置负载调度器(主、备相同)
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
(1)配置keeplived(主、备DR 服务器上都要设置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
在这里插入图片描述
在这里插入图片描述
systemctl start keepalived
ip addr #查看虚拟网卡vip
两个负载调度器都得设置

(2)启动 ipvsadm 服务
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

(3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应
vim /etc/sysctl.conf
在这里插入图片描述
2.配置节点服务器
systemctl stop firewalld
setenforce 0

yum -y install httpd
systemctl start httpd

–192.168.136.53—
echo ‘this is kgc web!’ > /var/www/html/index.html

–192.168.80.54—
echo ‘this is benet web!’ > /var/www/html/index.html

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255

service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.80.188 dev lo:0

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

验证:
在这里插入图片描述

提问:
Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动IP?
答案:
Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器。
然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器。
优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址。

keepalived的抢占与非抢占模式:
抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP
非抢占式俩节点state必须为bakcup,且必须配置nopreempt。
注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。

非抢占模式的设置

在这里插入图片描述
在这里插入图片描述
抢占模式在主的恢复之后会抢占回来,非抢占模式则不会再次抢占回来,除非副的挂掉了

三、脑裂现象

原因:
主调度器与备调度器之间会有一个连接,备是一直靠着接收主的存活信息来判断是否抢占成为主,如果这条链路断了,主还在运行,但是存活消息发送不到备,那么备就会抢占成为主,这样会导致有两个主,会导致数据流失。
判断方法:
使用一个节点服务器来Ping主调度器或者备调度器,若是能ping通,代表还在运行,如果ping不通,那就是挂掉了。
解决方案:关闭主调度器即可

判断链路有没有断的脚本:
在这里插入图片描述

Keepealived最常见的问题是会出现脑裂现象:
Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占master的工作,但其实这时候的master是正常工作的,此时就会出现脑裂的现象。
预防:1.使用shell脚本对这两个主机之间的连通性进行监测,如果发现有问题,就会立即关闭keepalived服务来防止脑裂的产生。
2.增加一条链路作为备用链路,即使主链路挂掉了,备用链路也会顶上来,master主机可以继续给backup主机发送心跳消息。
3.3.使用监控软件的方法,这边主要是采用的zabbix来监控的,主要就是创建监控项,创建触发器来测试关闭keepalived服务。

四、Nginx高可用模式

在主副两个调度器上创建脚本,为了探测nginx进程是否存在
在这里插入图片描述

主调度器的keepalived配置文件
在这里插入图片描述在这里插入图片描述

副调度器keepalived配置文件

在这里插入图片描述
必须得先启动nginx才可以启用,否则脚本配置文件里的脚本无法执行

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

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

相关文章

11.枚举和注解|Java学习笔记

文章目录 枚举 enumeration enum自定义实现枚举自定义类实现枚举总结 使用enum关键字实现枚举实现方法Enum类方法enum实现接口 注解注解的理解JDK的元Annotation(元注解) 枚举 enumeration enum 从一个需求引入: 要求创建季节(Season) 对象&…

matlab 使用预训练神经网络和SVM进行苹果分级(带图形界面)支持其他物品图片分级或者分类

目录 数据集: 实验代码:alexnet版 如果你的matlab不是正版,先看这里: 数据集结构: 训练代码: 训练结果: 图形界面: 界面展示: 其他: 输出结果: 实验…

代码规范

一 、代码规范 程序员写代码,不仅仅是实现功能 1. 名称 在Python开发过程中会创建文件夹/文件/变量等,这些在命名有一些潜规则(编写代码时也要注意pep8规范)。 文件夹,小写 & 小写下划线连接,例如&a…

jmeter 在linux服务器中执行性能测试、监听服务器资源指标

jmeter监控服务器资源 资源准备jmeter安装(Windows 版)jmeter安装(linux 版)ServerAgent安装(linux 版)配置脚本并执行测试 资源准备 下载apache-jmeter-5.5文件;下载ServerAgent-2.2.3文件; jmeter安装&…

ZooKeeper的集群部署和启动与关闭

ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器,但只允许存在一台Leader服务器。如果Leader服务器宕机,那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器,为防止投票数不过半…

2023最新社交圈子即时聊天通信小程序+前端UNIAPP

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,阅读文章底部来交流!!! 🎉 ✨ 源码介绍 2023最新多端社交圈子系统源码 | 陌生人社交…

[openeuler]Yocto embedded 联合sig例会 (2022-12-15)

Yocto & embedded 联合sig例会 (2022-12-15)_哔哩哔哩_bilibili

【C/C++】详解 函数重载和应用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【零基础学JS - 11 】javaScript中的if..else表达式

&#x1f468;‍&#x1f4bb; 作者简介&#xff1a;程序员半夏 , 一名全栈程序员&#xff0c;擅长使用各种编程语言和框架&#xff0c;如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个…

[操作系统]4.文件管理

因为复习时间来不及了 还是老规矩,知识点覆盖不完全,具体内容请参考黑书,知识脉络来自王道操作系统 关于文件操作系统 1.文件系统基础 (1)文件的定义 文件时操作系统中的重要概念,是以计算机硬盘为基础载体存储在假期上的信息的集合 (2)文件的属性 文件的属性可以理解为文…

json-server 详解

这几天在写react的前端项目,想着后端接口没有,在网上也找不到比较合适的接口,所以在github和npm上翻了许久关于前端简单生成后端接口的工具,终于被找到了这个神仙工具json-server JSON-Server 是一个 Node 模块&#xff0c;运行 Express 服务器&#xff0c;你可以指定一个 jso…

CENTOS上的网络安全工具(二十四)Windows下的Hadoop+Spark编程环境构建

前面我们搭建了hadoop集群&#xff0c;spark集群&#xff0c;也利用容器构建了spark的编程环境。但是一般来说&#xff0c;就并行计算程序的开发&#xff0c;一刚开始一般是在单机上的&#xff0c;比如hadoop的single node。但是老师弄个容器或虚拟机用vscode远程访问式开发&am…

APM代码阅读(一):串口驱动

文章目录 前言一、AP_RangeFinder_TeraRanger_Serial.h二、AP_RangeFinder_TeraRanger_Serial.cpp三、AP_RangeFinder.cppinitdetect_instance_add_backendupdate 四、 AP_RangeFinder_Backend_Serial.cpp 前言 APM 4.2.3 以测距传感器的串口驱动为例进行阅读 其他的传感驱动都…

【Applied Algebra】扩域(Galois域)上的乘加法表构造

【Applied Algebra】扩域(Galois域)上的乘法表构造 在之前的文章里,我们讨论了扩域上(Galois域)的计算及其实现,但是侧重的是扩域中元素之间运算的细节实现,而如果想描述整个域的结构,就需要构造乘法表和加法表;实现仍然是基于c和符号计算库GiNaC; 运算表及其设计 考虑 F p n …

Zookeeper 基础知识汇总

一、zookeeper 概述 中文教程&#xff1a;https://www.docs4dev.com/docs/zh/zookeeper/r3.5.6/reference/zookeeperOver.html 1.1 概述 ZooKeeper 是⼀种分布式协调服务&#xff0c;⽤于管理⼤型主机。在分布式环境中协调和管理服务是 ⼀个复杂的过程。ZooKeeper 通过其简单的…

网内计算:可编程数据平面和技术特定应用综述

网内计算&#xff1a;可编程数据平面和技术特定应用综述 摘要——与云计算相比&#xff0c;边缘计算提供了更靠近终端设备的处理&#xff0c;降低了用户体验的延迟。最新的In-Network Computing范例采用可编程网络元素在数据达到边缘或云服务器之前计算&#xff0c;促进了常见…

Linux性能分析之perf(1)基础知识总结

Linux(09)之perf(1)基础知识总结 Author&#xff1a;Onceday Date&#xff1a;2023年1月31日 漫漫长路&#xff0c;才刚刚开始… 参考文档&#xff1a; Tutorial - Perf Wiki (kernel.org) linux性能分析工具专题-perf&#xff08;事件采样&#xff0c;全面性能分析&#x…

时钟树综合跑不下去,怎么破?

吾爱IC社区第二十一期IC训练营正式开始招募啦&#xff08;5月21号开营&#xff09;&#xff01;不知不觉小编的IC后端训练营课程已经举办21期了。每一期的报名时间也就1-3天&#xff0c;而且几乎每期都是爆满的情况。这背后的逻辑很简单。大家都信任吾爱IC社区这个品牌&#xf…

做副业的我很迷茫,但ChatGPT却治好了我——AI从业者被AI模型治愈的故事

迷茫&#xff0c;无非就是不知道自己要做什么&#xff0c;没有目标&#xff0c;没有方向。 当有一个明确的目标时&#xff0c;往往干劲十足。但做副业过程中&#xff0c;最大的问题往往就是 不知道自己该干什么。 干什么&#xff1f;怎么干&#xff1f;干到什么程度&#xff1f…

通过部署Java工程学习Jenkins

今天来学习Jenkins部署应用&#xff0c;在工作中一般都是提交代码到git之后&#xff0c;通过自动打包的功能形成jar包&#xff0c;然后运行jar包。服务器自动从git拉取最新代码进行打jar包的这个过程就通过Jenkins来进行。 Jenkins官网地址 首先我们可以看一下官网的版本 我们…