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

LVS+Keepalived 群集

目录

一、keepalived概述

1.keepalived工作原理

2.keepalived体系主要模块及其作用

3.判断服务器主备,及如何配置浮动IP

二、keepalived的抢占与非抢占模式

三、部署LVS+keepalived 

1.配置负载调度器(主备相同)

1.1配置keepalived(主备DR服务器都要设置)

1.2启动ipvsadm服务

1.3调整 proc 响应参数,关闭Linux 内核的重定向参数响应

2.配置节点服务器

3.测试验证


一、keepalived概述

专为LVS和HA设计的一款健康检查工具,支持故障自动切换(Failover)以及节点健康状态检查(Health Checking)。判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到 backup 节点保证业务正常,当 master故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

1.keepalived工作原理

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

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

  • keepalived 采用 VRRP 热备份协议实现Linux服务器的多机热备份功能
  • 双机热备的故障切换是由虚拟地址的漂移来实现,适用于各种应用服务器

2.keepalived体系主要模块及其作用

 keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

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

3.判断服务器主备,及如何配置浮动IP

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

二、keepalived的抢占与非抢占模式

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

三、部署LVS+keepalived 

主DR 服务器:192.168.88.50
备DR 服务器:192.168.88.80
Web 服务器1:192.168.88.60
Web 服务器2:192.168.88.70
vip:192.168.88.188
客户端:192.168.88.200

1.配置负载调度器(主备相同)

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

1.1配置keepalived(主备DR服务器都要设置)

cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.confglobal_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.88.188}
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.88.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.88.60 80 {weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		TCP_CHECK {connect_port 80			#添加检查的目标端口connect_timeout 3		#添加连接超时(秒)nb_get_retry 3			#添加重试次数delay_before_retry 3	#添加重试间隔}}real_server 192.168.88.70 80 {		#添加第二个 Web节点的地址、端口weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
##删除后面多余的配置##
}systemctl start keepalived
ip addr						#查看虚拟网卡vip

 

1.2启动ipvsadm服务

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

1.3调整 proc 响应参数,关闭Linux 内核的重定向参数响应

vim /etc/sysctl.conf
#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0sysctl -p

2.配置节点服务器

systemctl stop firewalld
setenforce 0yum -y install httpd
systemctl start httpd--192.168.88.60---
echo 'this is kgc web!' > /var/www/html/index.html--192.168.88.70---
echo 'this is benet web!' > /var/www/html/index.htmlvim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.88.188
NETMASK=255.255.255.255service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0route add -host 192.168.88.188 dev lo:0      #临时配置
或
vim /etc/rc.local                            #永久配置
/sbin/route add -host 192.168.80.188 dev lo:0
chmod +x /etc/rc.d/rc.local
source /etc/rc.d/rc.localvim /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1      #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2    #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2sysctl -p

 

3.测试验证

在客户端访问 http://192.168.88.188/ 
再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived

 

 

 

相关文章:

LVS+Keepalived 群集

目录 一、keepalived概述 1.keepalived工作原理 2.keepalived体系主要模块及其作用 3.判断服务器主备,及如何配置浮动IP 二、keepalived的抢占与非抢占模式 三、部署LVSkeepalived 1.配置负载调度器(主备相同) 1.1配置keepalived&…...

windows系统cmd命令设置别名,并添加到环境变量

众所周知,Linux 命令很强大,使用起来也很方便,但是想在 windows 系统上使用 Linux 命令有些困难,要么下载第三方终端工具,要么就是安装一系列命令环境。 作为一个前端开发,其实可以全局安装一下 npm 命令行…...

智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机)

智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机) 目录 智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机)预测效果基本介绍模型原理程序设计参考资料预测效果 基本介绍 Matlab实现GWO-SVM灰狼算法优化支持向量机的多输…...

java方法

文章目录 一、java方法总结 一、java方法 在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢? println() 是一个方法。 System 是系统类。 out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 pr…...

LabVIEW与Space Wire配合开发

LabVIEW与Space Wire配合开发 Space Wire是欧洲航天局开发的一种高速、点对点、全双工的串行总线网络,以IEEE1355-1995和LVDS 两个商业标准为基础,汲取了1394技术、ATM技术、以太网技术的优点,同时考虑了空间应用的特点,在故障检…...

开始使用chat-gpt4

目录 一、说明 二、安装步骤 三、测试效果咋样 (1)写代码能力 (2)回答问题能力 (3)写作能力 一、说明 参考(非常感谢这位博主的分享):http://t.csdn.cn/qypw9 注意&…...

算法之贪心算法

定义 总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案。 适用标准 贪心选择性质。 原问题的整体最优解可以通过一系列局部最优的选择得到。这种选择依赖于已做出的选择,不依赖于未做出的选择。贪心算法解决的问题,在程…...

Maven 基础

博文目录 文章目录 Maven基础概念生命周期 - Build Lifecycle阶段 - Build Phase目标 - Plugin goals默认目标绑定Clean 生命周期Default 生命周期Site 生命周期 插件 - Plugin POM(Project Object Model)Super POM项目继承 - Project Inheritance项目聚…...

算法刷题-哈希表-两数之和

两数之和 1. 两数之和思路总结其他语言版本 1. 两数之和 力扣题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中…...

kotlin学习(一)基本概念、数据对象类型、控制流程、空值检验、类与接口

文章目录 认识Kotlin跨平台特性语言类型java的语言类型kotlin的运行原理 hello world 基本概念程序入口数据与对象类型 和 显式数字转换浮点类型位运算AnyUnitNothing 声明变量只读变量 val与可变变量var查看Kotlin字节码 fun(方法 / 函数)函数参数默认值…...

【Linux】Docker部署镜像环境 (持续更新ing)

防火墙 1、查看防火墙状态 sudo systemctl status ufw 2、开启防火墙 sudo systemctl start ufw 3、关闭防火墙 sudo systemctl stop ufw 4、开机禁止开启防火墙 sudo systemctl disabled ufw 5、开启自启防火墙 sudo systemctl enabled ufw Elasticsearch 1、安装指定版本 比…...

Jtti:如何打开云服务器的8082端口

如何打开云服务器的8082端口? 第一步:登录云服务器 首先,我们需要登录到我们的云服务器。可以使用SSH、控制台等方式进行登录。登录成功后,我们可以在终端上看到服务器的控制台。 第二步:编辑防火墙规则 打开终端后,我…...

有关 string 类的练习(下)

目录 一、反转字符串 II 二、反转字符串中的单词 III 三、找出字符串中第一个只出现一次的字符 四、字符串相乘 五、把字符串转换成整数 一、反转字符串 II 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转…...

XuperChain搭建+报错+注意事项

安装依赖 golang 这里安装的是15-17版本 wget -c https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local 添加环境变量 这个可以通过添加下面的行到/etc/profile文件(系统范围内安装)或者$HOME/.profile文件(当前用户安装 vim /etc…...

【伏羲八卦图】(PythonMatlab实现)

目录 1 与达尔文对话 2 与老子对话 2.1 Python实现 2.2 Matlab实现 1 与达尔文对话 140年前,1858年7月1日,达尔文在英伦岛发表了自己有关自然选择的杰出论文。他提出,生物的发展规律是物竞天择。经过物竞,自然界选择并存留最具…...

ruoyi数据权限学习

思路 用户关联了角色(用户可以关联多个角色),给角色设置数据权限分类,数据权限分类有如下5种: 全部数据权限 - DATA_SCOPE_ALL自定数据权限 - DATA_SCOPE_CUSTOM部门数据权限 - DATA_SCOPE_DEPT部门及以下数据权限 -…...

WPF中实现动态导航

主页面 <mah:MetroWindowx:Class"Kx.View.MyMainView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/bl…...

day16 | 104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数

目录&#xff1a; 链接 题目链接&#xff1a; https://leetcode.cn/problems/maximum-depth-of-binary-tree/ https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/ https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/ 解题及思路学习 104…...

Spring Boot + Vue3前后端分离实战wiki知识库系统<八>--分类管理功能开发二

接着上一次Spring Boot Vue3 前后端分离 实战 wiki 知识库系统&#xff1c;七&#xff1e;--分类管理功能开发的分类功能继续完善。 分类编辑功能优化&#xff1a; 概述&#xff1a; 现在分类编辑时的界面长这样&#xff1a; 很明显目前的父分类的展现形式不太人性&#xf…...

Python入门(十八)类(一)

类&#xff08;一&#xff09; 1.面向对象概述2.创建和使用类2.1 创建dog类2.2 根据类创建实例2.3 创建多个实例 1.面向对象概述 面向对象编程是最有效的软件编写方法之一。在面向对象编程中&#xff0c;你编写表示现实世界中的事物和情景的类&#xff0c;并基于这些类来创建对…...

WeChatMsg:微信聊天记录本地化解析与多格式导出技术方案

WeChatMsg&#xff1a;微信聊天记录本地化解析与多格式导出技术方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

repo2txt:Git仓库转纯文本工具,为AI分析、代码归档与审查提供完整上下文

1. 项目概述&#xff1a;从代码仓库到纯文本的自动化提取最近在整理个人技术笔记和项目文档时&#xff0c;我遇到了一个挺普遍但有点烦人的问题&#xff1a;如何把一个完整的Git代码仓库&#xff0c;包括它的目录结构、所有源代码文件以及提交历史&#xff0c;以一种清晰、可读…...

射频非线性建模:从S参数到X参数与NVNA的工程实践

1. 非线性星期三&#xff1a;一场射频工程师的“大信号”狂欢如果你是一名射频或微波电路设计工程师&#xff0c;对S参数、负载牵引、谐波失真这些词感到既熟悉又头疼&#xff0c;那么十多年前在巴尔的摩举行的国际微波研讨会&#xff08;IMS 2011&#xff09;上&#xff0c;有…...

量子计算中CV-DV混合门集原理与应用

1. 量子计算中的CV-DV门集基础在混合量子系统中&#xff0c;连续变量(CV)和离散变量(DV)门集的协同工作为量子算法设计提供了独特优势。CV系统通常由量子谐振荡器实现&#xff0c;其状态存在于无限维希尔伯特空间中&#xff0c;而DV系统则以量子比特为基本单元。这两类系统的结…...

AI自动化新范式:基于MCP协议实现飞书与AI助手深度集成

1. 项目概述与核心价值如果你和我一样&#xff0c;每天的工作都离不开飞书&#xff0c;那你肯定也遇到过这样的场景&#xff1a;想用AI助手帮你整理会议纪要、自动更新项目文档&#xff0c;或者根据Bitable里的数据生成周报&#xff0c;却发现AI只能“看”不能“动”。它理解你…...

基础模型全生命周期管理的混合架构实践与优化

1. 基础模型全生命周期管理的架构挑战基础模型&#xff08;Foundation Models&#xff09;正在重塑AI技术栈的每个环节&#xff0c;从预训练到推理部署的全生命周期管理面临前所未有的系统架构挑战。传统HPC&#xff08;高性能计算&#xff09;集群和云原生平台各自为政的局面&…...

电光非线性计算加速Transformer注意力机制

1. 电光非线性计算加速Transformer注意力机制的技术背景Transformer架构已经成为当前自然语言处理和计算机视觉领域的主导性神经网络结构&#xff0c;其核心组件——注意力机制依赖于Softmax等非线性运算。虽然这些非线性操作仅占模型总计算量的不到1%&#xff0c;但由于现代GP…...

从‘坍缩’到‘对齐’:用SimCSE解决BERT句子向量老难题,我的中文业务实验复盘

从语义坍缩到精准对齐&#xff1a;SimCSE在中文业务场景的实战指南 BERT模型在自然语言处理领域取得了巨大成功&#xff0c;但其原生句子向量存在一个令人头疼的问题——语义坍缩。简单来说&#xff0c;就是不同句子的向量在高维空间中倾向于聚集在一起&#xff0c;导致相似度计…...

【仅限首批内测团队获取】AI Agent Serverless标准化交付套件(含Terraform模块+OpenTelemetry追踪模板+合规审计清单)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent Serverless应用的演进逻辑与范式跃迁 AI Agent 与 Serverless 的融合并非技术堆叠&#xff0c;而是计算范式在智能体自治性、事件驱动粒度和资源契约关系三重维度上的结构性重构。早期云函数仅…...

AI搜索优化效果哪家好

传统行业获客越来越难&#xff0c;价格战打得头破血流&#xff0c;这是过去三年我听得最多的抱怨。但就在上个月&#xff0c;我用一个完全不同的方法&#xff0c;让公司的获客成本从单次300元降到了不到30元。秘密就在AI搜索优化&#xff0c;而这30天的实测&#xff0c;让我对市…...