Nginx+KeepAlived高可用负载均衡集群的部署

news2024/11/25 2:53:02

目录

一.KeepAlived补充知识

1.一个合格的群集应该具备的特点

2.健康检查(探针)常用的工作方式

3.相关面试问题

问题1

问题2

二.Keepealived脑裂现象

1.现象

2.原因

硬件原因

运用配置原因

3.解决

4.预防

方法1

方法2

方法3

方法4

三.实验部署

1.两台nginx做初始化操作并安装nginx

2.四层反向代理配置

2.1.修改主调度器配置

2.2.修改备调度器配置

2.3.浏览器测试两台nginx服务器

3.配置高可用

4.准备检查nginx运行状态脚本

4.1.主服务器

4.2.备服务器

5.开启keepalived服务并测试

5.1.分别开启主备两台服务器keepalived

5.2.浏览器测试


一.KeepAlived补充知识

1.一个合格的群集应该具备的特点

  • 负载均衡          用于提高群集的性能   LVS  Nginx  HAProxy  SLB  F5
  • 健康检查(探针)  针对于调度器和节点服务器    Keepalived   Heartbeat
  • 故障转移          通过VIP漂移实现主备切换     VRRP   脚本

2.健康检查(探针)常用的工作方式

  • 发送心跳消息    vrrp报文    ping/pong
  • TCP端口检查     向目标主机的 IP:PORT 发起TCP连接请求,如果TCP连接三次握手成功则认为健康检查正常,否则认为健康检查异常
  • HTTP URL检查    向目标主机的URL路径(比如http://IP:PORT/URI路径)发起 HTTP GET 请求方法
  • 如果响应消息的状态码为 2XX 或 3XX,则认为健康检查正常
  • 如果响应消息的状态码为 4XX 或 5XX,则认为健康检查异常

3.相关面试问题

问题1

Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动IP

答案

  1. Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器
  2. 然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务
  3. 优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址

问题2

keepalived的抢占与非抢占模式

答案

  1. 抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP
  2. 非抢占式俩节点state必须为bakcup,且必须配置nopreempt

注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了

二.Keepealived脑裂现象

1.现象

主服务器和备服务器都同时拥有相同的VIP

在"双机热备"高可用(HA)系统中,当联系两个节点的"心跳线"断开时(即两个节点断开联系时),

本来为一个整体、动作协调的HA系统,就分裂成为两个独立的节点(即两个独立的个体)。由于相互

失去了联系,都以为是对方出了故障,此时备用调度器会运转起来争做主调度器的工作,而主调度

器依然保持着调度工作,两个调度的同时运转导致整个系统的紊乱。就会发生严重后果:

  • 共享资源被瓜分、两边"服务"都起不来
  • 或者两边"服务"都起来了,但同时读写"共享存储",导致数据损坏(常见如数据库轮询着的联机日志出错)

2.原因

因为主服务器和备服务器的通信中断,导致备服务器无法收到主服务器发送的VRRP报文,备服务

器误认为主服务器已经故障了并通过ip命令生成VIP

硬件原因

  • 高可用服务器各节点之间心跳线链路发生故障,导致无法正常通信
  • 因心跳线坏了(包括断了,老化)
  • 因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)
  • 因心跳线间连接的设备故障(网卡及交换机)
  • 因仲裁的机器出问题(采用仲裁的方案)

运用配置原因

  • 高可用服务器上开启了iptables防火墙阻挡了心跳消息传输
  • 高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败
  • 其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等
  • Keepalived配置里同一VRRP实例如果virtual_router_id两端参数配置不一致也会导致裂脑问题发生

3.解决

关闭主服务器或备服务器其中一个的keepalived服务

4.预防

方法1

如果是系统防火墙导致,则关闭防火墙或添加防火墙规则放通VRRP组播地址(224.0.0.18)的传输

方法2

如果是主备服务器之间的通信链路中断导致,则可以在主备服务器之间添加双链路通信

方法3

在主服务器使用脚本定时判断与备服务器通信链路是否中断,如果判断是主备服务器之间的链接中

断则自行关闭主服务器上的keepalived服务

方法4

利用第三方应用或监控系统检测是否发生了脑裂故障现象,如果确认发生了脑裂故障则通过第三方

应用或监控系统来关闭主服务器或备服务器其中一个的keepalived服务

三.实验部署

此实验基于以上 LVS+KeepAlived高可用负载均衡群集的部署实验为基础,将两台调度器改为

nginx服务器,其余不变

准备虚拟机

192.168.80.104(nginx服务器四层代理)

192.168.80.105(nginx服务器四层代理)

192.168.80.106(web1)

192.168.80.107(web2)

192.168.80.108(nfs共享存储)

1.两台nginx做初始化操作并安装nginx

nginx镜像网址:

2.四层反向代理配置

2.1.修改主调度器配置

stream {
    upstream backends {
         server 192.168.80.106:80;
         server 192.168.80.107:80;
     }
    server {
         listen 8080;
         proxy_pass backends;
    }
}

2.2.修改备调度器配置

将主调度器的nginx.conf复制过来

2.3.浏览器测试两台nginx服务器

192.168.80.104/192.168.80.105

3.配置高可用

两台nginx服务器安装keepalived

4.准备检查nginx运行状态脚本

4.1.主服务器

#!/bin/bash
 
if ! killall -0 nginx &> /dev/null
   then
   systemctl stop keepalived
fi

4.2.备服务器

将主里的复制到备里

5.开启keepalived服务并测试

5.1.分别开启主备两台服务器keepalived

5.2.浏览器测试

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

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

相关文章

VUE之重定向redirect

VUE之路由和重定向redirect 这个小知识点是在学习做项目的时候遇到的一个问题,借鉴了一个他人的项目,是一个酒店管理系统,拿到源码之后导到我的vscode里。 参考链接 导的过程比较顺利,正常安装,加依赖,没有…

禁渔期水域监管:EasyCVR视频智能监控方案

一、背景与需求分析 根据农业部印发的《中国渔政亮剑2024系列专项执法行动方案》,我国将持续推进长江十年禁渔、海洋伏季休渔、黄河等内陆重点水域禁渔等专项行动。根据四川省相关规定,每年3月1日至6月30日为禁渔期,在此期间,四川…

坚持每天学编程的有多少?聊聊有多少人躺平了,工作生活压力大吗

以前刚开始学编程的时候,一晚上就能看完一本Frontpage网页编程的书,就像是WORD一样简单,第二天就敢去找工作。工作后学习VB6SQL SERVER数据库,几百页的大部头书,基本上一个月也能看完,后面还买了2个大书柜&…

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号

无人共享棋牌室系统——棋牌娱乐新体验 🎲引言 随着科技的不断发展,传统棋牌室正逐渐迈向智能化、无人化。今天,我要为大家介绍的就是这款引领潮流的“无人共享棋牌室系统”。它不仅为棋牌爱好者提供了全新的娱乐体验,更在便捷性…

数据预处理 #数据挖掘 #python

数据分析中的预处理步骤是数据分析流程中的重要环节,它的目的是清洗、转换和整理原始数据,以便后续的分析能够准确、有效。预处理通常包括以下几个关键步骤: 数据收集:确定数据来源,可能是数据库、文件、API或网络抓取…

软件游戏提示msvcp140.dll丢失的原因分析及解决方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“计算机缺失msvcp140.dll”。那么,这个错误是什么意思呢?它会造成哪些问题?小编将从以下几个方面进行详细解析。 一,了解msvcp140.dll是什么 …

尚品汇-(一)

(1)技术介绍 (2)业务介绍 (3)虚拟机安装 可以稍后配置镜像:选第二个 采用第二项NET模式: 安装完成:开启 不选择界面的,选择基础的 分配了ip: 测试网络 为…

HTML静态网页成品作业(HTML+CSS)—— 非遗皮影戏介绍网页(6个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有6个页面。 二、作品演示 三、代…

blender bpy将顶点颜色转换为UV纹理vertex color to texture

一、关于环境 安装blender的bpy,不需要额外再安装blender软件。在python控制台中直接输入pip install bpy即可。 二、关于代码 本文所给出代码仅为参考,禁止转载和引用,仅供个人学习。 本文所给出的例子是https://download.csdn.net/downl…

动态javaweb 建立-准备阶段

一、实验内容: 1.定义一个inputjsp页面接收数据输入的长和宽。 2.创建一个javaBean,包含长、宽和面积三个成员变量,分别有对应的get方法和set方法。 3.定义一个业务模型calculate.java,用来计算矩形的面积。 4.定义一个…

HTTP3版本和实现验证

HTTP3协议基于Google的 QUIC 协议,由互联网工程任务组(IETF)来制定。目录还是草案,已经进行到第33版。 HTTP3 是基于 QUIC 协议的 http。传输层是UDPQUIC,应用层仍是HTTP,即request/respose, request里也仍…

5G消息 x 文旅 | 一站式智慧文旅解决方案

5G消息 x 文旅 | 一站式智慧文旅解决方案 文旅 x 5G 消息将进一步强化资源整合,满足游客服务需求、企业营销需求、政府管理需求,推进文化旅游项目的智慧化、数字化,增强传播力、竞争力和可持续性。5G 消息的“原生入口”、“超强呈现”、“智…

基于机器学习和奇异值分解SVD的电池剩余使用寿命预测(Python)

采用k-最近邻KNN和随机森林算法建立预测模型。 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.svm import SVC # Support Vector Classifier from sklearn.preprocessing import StandardScaler from sklearn.metrics import accu…

LabVIEW开发指针式压力仪表图像识别

系统利用LabVIEW编程实现对指针式压力仪表的读取,通过相机、光源、固定支架等硬件捕捉仪表图像,并通过图像识别技术解析压力值。系统分为两个阶段:第一阶段固定相机更换仪表,第二阶段移动相机识别多个固定仪表。本文介绍硬件选择、…

LeetCode | 21.合并两个有序链表

这道题也是很经典的一道题了,408的算法题中也考过这个思想,因为两个链表已是升序,合并只需要两个指针,分别指向两个表的表头,分别比较两个指针所指向的结点的val,小的就插入到目标链表里面,再后…

【StableDiffusion】Lora 底层原理,低秩适配,Lora 如何与 checkpoint 联合发挥作用

鸣谢UP主:是花子呀 本篇博客参考视频:https://www.bilibili.com/video/BV17i421X7q7/?spm_id_from333.880.my_history.page.click&vd_source38d6ea3466db371e6c07c24eed03219b Lora 是个啥?Lora 的 缩写 Lora:Low Rank Ada…

美式动漫效果PS图层样式

对于追求独特艺术风格和创意的摄影师和设计师来说,一款能够轻松将照片转化为卡通效果的Photoshop模板无疑是一个强大的工具。这款由专业团队精心打造的模板,特别注重于美式动漫风格的呈现,让您的照片瞬间拥有生动且充满魅力的动漫色彩。 模板…

Adobe Photoshop cc快速抠图与精致抠图方法

一、背景 Photoshop cc绝对是最好用的抠图and修图软件,但是即使最简单的抠图,每次用时都忘记怎么做,然后再去B站搜,非常费时,下面记录一下抠图过程,方便查阅。 一、Adobe Photoshop快速抠图 选择——主体…

遥控玩具车电机驱动应用中的双H桥驱动芯片

遥控玩具车的基本工作原理是通过无线电遥控器发送信号,这些信号被玩具车内的接收器接收并解码,从而控制玩具车的运行。根据车身外型的不同,可以分为:普通的私家房车、越野车、货柜车、翻斗车等等。遥控器的操作,如前进…

实验12 路由重分布

实验12 路由重分布 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 在大型网络的组建过程中,隶属不同机构的网络部分往往会根据自身的实际情况来选用路由协议。例如,有些网络规模很小,为了管理简单&…