当前位置: 首页 > news >正文

LVS keepalived实现高可用负载群集

目录

1 Keepalived及其工作原理

1.1 Keepalived体系主要模块及其作用:

2 LVS+Keepalived 高可用群集部署

2.1 配置负载调度器(主、备相同)

2.1.1 配置keeplived(主、备DR 服务器上都要设置)

2.1.2 启动 ipvsadm 服务

2.1.3 调整 proc 响应参数

2.2 配置节点服务器

2.3 测试验证

3 知识点


1 Keepalived及其工作原理

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

在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP(VIP),主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

1.1 Keepalived体系主要模块及其作用:

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。 ●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。 ●vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换) ●check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

2 LVS+Keepalived 高可用群集部署

服务器规划:

主DR 服务器:192.168.30.105

备DR 服务器:192.168.30.102

Web 服务器1:192.168.30.107

Web 服务器2:192.168.30.108

vip:192.168.30.188

客户端:192.168.30.115

2.1 配置负载调度器(主、备相同)

systemctl stop firewalld.service
setenforce 0yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs

2.1.1 配置keeplived(主、备DR 服务器上都要设置)

vim keepalived.conf
......
global_defs {						#定义全局参数
--10行--修改,邮件服务指向本地smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接#vrrp_strict
}vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUPstate MASTER
--21行--修改,指定承载vip地址的物理接口interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	virtual_router_id 10#nopreempt		#如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90priority 100advert_int 1					#通告间隔秒数(心跳频率)authentication {				#定义认证信息,每个热备组保持一致auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致auth_pass abc123}virtual_ipaddress {				#指定群集vip地址192.168.80.188}
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.80.188 80 {delay_loop 6					#健康检查的间隔时间(秒)lb_algo rr						#指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)lb_kind DRpersistence_timeout 0			#连接保持时间(秒)protocol TCP					#应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口real_server 192.168.80.12 80 {weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		TCP_CHECK {connect_port 80			#添加检查的目标端口connect_timeout 3		#添加连接超时(秒)nb_get_retry 3			#添加重试次数delay_before_retry 3	#添加重试间隔}}real_server 192.168.80.13 80 {		#添加第二个 Web节点的地址、端口weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}##删除后面多余的配置##
}

systemctl start keepalived
ip addr						#查看虚拟网卡vip

2.1.2 启动 ipvsadm 服务

                                                        ---192.168.30.105---

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadmipvsadm -ln
#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived

                                                        ---192.168.30.105---

​​​​​​​

2.1.3 调整 proc 响应参数

关闭Linux 内核的重定向参数响应 v

vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0sysctl -p

2.2 配置节点服务器

systemctl stop firewalld
setenforce 0--192.168.30.107---
echo 'yuan shen !' > /apps/nginx/html/index.html--192.168.30.109---
echo 'this is benet web!' > /apps/nginx/html/index.htmlvim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.30.188
NETMASK=255.255.255.255service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.30.188 dev lo:0vim /etc/sysctl.confnet.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 = 2sysctl -p

2.3 测试验证

在客户端访问 http://192.168.30.188/

再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived

配备成功

3 知识点

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

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

相关文章:

LVS keepalived实现高可用负载群集

目录 1 Keepalived及其工作原理 1.1 Keepalived体系主要模块及其作用: 2 LVSKeepalived 高可用群集部署 2.1 配置负载调度器(主、备相同) 2.1.1 配置keeplived(主、备DR 服务器上都要设置) 2.1.2 启动 ipvsadm 服…...

HTTP RESTFul RPC

一、简介 (1)HTTP(Hypertext Transfer Protocol)是一种应用层协议。它经常用于在Web和服务器之间通讯,或服务与服务之间通讯。 (2)RESTFul 约束HTTP协议实现上的规范设计。 (3&am…...

短视频seo矩阵系统源码开发搭建--代用户发布视频能力

短视频SEO矩阵系统源码开发搭建的代用户发布视频能力,主要是指在系统平台上,允许用户将其创作的内容发布到指定的账号或平台,并设置好相关的标题、话题、锚点等信息。 一、搭建步骤及注意事项 确定使用场景。根据业务需求,确定该…...

真实的产品开发中,后端的设计规约可以写哪些

真实的产品开发中,后端的设计规约可以写哪些 产品开发的后端设计规约通常包括以下内容: 数据模型设计:详细描述数据库的结构,包括数据表的设计、字段的定义和关系的设置等。 业务逻辑设计:详细描述后端的业务逻辑&a…...

Pytorch 多卡并行(2)—— 使用 torchrun 进行容错处理

前文 Pytorch 多卡并行(1)—— 原理简介和 DDP 并行实践 介绍了使用 Pytorch 的 DDP 库进行单机多卡训练的方法,本文进一步说明如何用 torchrun 改写前文代码,以提高模型训练的效率和容错性torchrun 是从 Pytorch 1.9.0 开始引入的…...

Java异常处理(详解)

Java异常处理 前言一、异常与异常类1.异常的概念2.异常类Error类Exception类(1)非检查异常(2)检查异常 二、异常处理1.异常的抛出与捕获2.try-catch-finally语句3.声明方法抛出异常3.用throw 语句抛出异常 三、自定义异常类 前言 …...

嵌入式-数据进制之间的转换

目录 一.简介 1.1十进制 1.2二进制 1.3八进制 1.4十六进制 二.进制转换 2.1二进制-十进制转换 2.2八进制-十进制转换 2.3十六进制-十进制转换 2.4十进制-二进制转换 2.5十进制-八进制转换 2.6十进制-十六进制转换 2.7小数部分转换 一.简介 被传入到计算机的数据要…...

腾讯mini项目-【指标监控服务重构】2023-08-20

今日已办 PPT制作 答辩流程 概述:对项目背景、架构进行介绍(体现我们分组的区别和需求)人员:小组成员进行简短的自我介绍和在项目中的定位,分工进展:对项目进展介绍,其中a、b两组的区别和工作…...

智能文本纠错API的应用与工作原理解析

引言 在数字时代,文本撰写和传播变得日益重要,无论是在学校里写论文、在职场中发送邮件,还是在社交媒体上发表观点。然而,文字错误、标点符号错误、语法问题和不当的表达常常会削弱文本的质量,降低信息传达的效果。为…...

在springboot下将mybatis升级为mybatis-plus

在springboot下将mybatis升级为mybatis-plus 1. 整体描述2. 具体步骤2.1 更新pom引用2.2 更新yml配置2.3 更新config配置2.4 BaseEntity修改 3. 程序启动4. 总结 1. 整体描述 之前项目工程用的是mybatis,现在需要将其替换为mybatis-plus,mybatis-plus的…...

Vuex详解:Vue.js的状态管理方案

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

栈与队列经典题目——用队列实现栈

本篇文章讲解栈和队列这一部分知识点的经典题目:用栈实现队列、用队列实现栈。对应的题号分别为:Leetcode.225——用队列实现栈,。 在对两个题目进行解释之前,先回顾以下栈和队列的特点与不同: 栈是一种特殊的线性表…...

Python stomp 发送消息无法显示文本

我们向消息服务器通过 stomp 发送的是文本消息。 当消息服务器发送成功后,消息服务器上的文本没有显示,显示的是 2 进制的数据。 如上图,消息没有作为文本来显示。 问题和解决 消息服务器是如何判断发送的小时是文本还是二进制的。 根据官…...

postgresql-视图

postgresql-视图 视图概述使用视图的好处 创建视图修改视图删除视图递归视图可更新视图WITH CHECK OPTION 视图概述 视图(View)本质上是一个存储在数据库中的查询语句。视图本身不包含数据,也被称为 虚拟表。我们在创建视图时给它指定了一个…...

科技资讯|Vision Pro头显无损音频仅限USB-C AirPods Pro 2耳机

彭博社的马克・古尔曼在最新发布的推文中表示,苹果 Vision Pro 头显的无损音频仅限于 USB-C AirPods Pro 2 耳机。 新款采用 USB-C 的 AirPods Pro 2 升级到了 IP54 级别(原版不防尘,仅 IPX4 级抗水),可陪伴用户在恶劣…...

Postman应用——初步了解postman

Postman 是一个用于构建和使用 API 的 API 平台,Postman 简化了 API 生命周期的每个步骤并简化了协作,可以更快地创建更好的 API。 Postman 包含一个基于Node.js的强大的运行时,允许您向请求(request)和分组&#xff…...

分析报告显示,PHP是编程语言主力军,且在电商领域占据“统治地位”

日前有有业内专家透露了PHP语言的使用数据,并强调了PHP语言对于互联网的作用。 而根据W3 Techs发布的《全球前1000万个网站使用的编程语言分析(截至 2023.8)》中,有这样一组数据引起广泛的关注。PHP占比 77.2%、ASP占比 6.9%、Ruby 占比5.4%。 此外&am…...

关于Greenplum Platform Extension Framework(PXF)

本文翻译自 https://docs.vmware.com/en/VMware-Greenplum-Platform-Extension-Framework/6.6/greenplum-platform-extension-framework/overview_pxf.html 随着数据存储和云服务的爆炸式增长,数据现在以各种格式驻留在许多不同的系统中。通常,数据根据…...

编程获取图像中的圆半径

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 即将推出EmguCV的教程,请大家还稍作等待。 之前网友咨询如何获得图像中圆形的半径,其中有两个十字作为标定…...

什么是Scrum?如何实施Scrum(敏捷开发)以及敏捷工具

​ 什么是Scrum? Scrum是一个敏捷开发框架,它是一个增量的、迭代的开发过程。它被广泛应用于敏捷软件开发,在Scrum中,开发过程由若干个短的迭代周期组成,每个迭代周期称为一个Sprint。 那么Scrum如何实施呢&#xf…...

2026 最稳 AI 论文工具合集:好用不踩雷

毕业季的论文关卡,早已不是 “单打独斗” 的时代。从选题迷茫、大纲混乱,到文献难找、格式崩溃,再到查重超标、AI 率预警,每一个卡点都在消耗本科生的时间与精力。随着 AI 技术深度渗透学术场景,一批专注毕业论文写作的…...

Cursor Pro破解工具完整指南:如何绕过限制实现永久免费使用

Cursor Pro破解工具完整指南:如何绕过限制实现永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached you…...

告别嘟嘟声!用Arduino和Python给蜂鸣器编程,轻松播放任意MP3旋律

用Arduino与Python解锁蜂鸣器的音乐潜能:从基础音调到智能编曲 在创客的世界里,让硬件发出声音一直是最富成就感的项目之一。传统51单片机虽然功能强大,但对于现代开发者而言,其开发环境配置复杂、调试困难等问题常常让人望而却步…...

【Midjourney Sumi-e风格创作终极指南】:20年AI绘画专家亲授3大笔触控制法则、5类水墨失真避坑清单与实时渲染参数配置表

更多请点击: https://intelliparadigm.com 第一章:Sumi-e水墨美学与AI生成的本体论契合 留白即存在 水墨画中的“余白”并非空无,而是气韵流转的场域——这与生成式AI中隐空间(latent space)的拓扑结构惊人地同构。扩…...

终极音乐解锁指南:3步免费解锁任何加密音乐文件

终极音乐解锁指南:3步免费解锁任何加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://git…...

别再手动描边了!用AutoCAD 2022画好异形PCB板框,一键导入Cadence SPB17.4

高效绘制异形PCB板框:AutoCAD与Cadence的无缝协作指南 在硬件设计领域,异形PCB板框的绘制一直是工程师们面临的挑战。传统矩形板框的绘制相对简单,但当项目需求涉及圆弧、缺口或不规则轮廓时,直接在Cadence Allegro中操作往往效率…...

Hummingbot自动化交易框架:从原理到实战的量化交易指南

1. 项目概述:一个为专业交易者打造的自动化交易框架如果你在加密货币交易领域摸爬滚打过一段时间,一定会对“手动盯盘”的疲惫和“情绪化操作”的代价深有体会。市场24/7运转,机会转瞬即逝,而人的精力终究有限。这正是我最初接触并…...

Swift原生大语言模型推理引擎llmfarm_core.swift集成与优化指南

1. 项目概述:一个为Swift生态打造的本地大语言模型推理引擎 最近在折腾一个iOS上的AI应用,想把一些轻量级的开源大语言模型(LLM)直接跑在手机端。大家都知道,现在主流的LLM推理框架,像llama.cpp、ollama&am…...

Pearcleaner:彻底清理Mac应用的终极免费开源解决方案

Pearcleaner:彻底清理Mac应用的终极免费开源解决方案 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 在Mac系统中卸载应用程序后,你是…...

17 LCD1602模块——显示屏

一、51单片机模块二、LCD1602模块三、模块间的连接单片机P2端口:P2_5~P2_7单片机P0端口:P0_0~P0_7四、LCD1602芯片1、参数和引脚这里只需要了解单片机的引脚功能,也可以大致看一眼,后面在编码显示功能的时候,也会做详细…...