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

Keepalived + LVS实现高可用

1、简介

LVS和Keepalived是Linux操作系统下实现高可用的负载均衡解决方案的重要工具。通过协同工作,它们能够实现一种高性能、高可用的负载均衡服务,使得用户能够透明地访问到集群中的服务。同时,它们还提供了强大的监控和故障切换功能,保证了系统的稳定性和可靠性。因此,对于需要实现负载均衡和高可用性的系统来说,LVS和Keepalived无疑是一个值得考虑的选择。

2、keepalived配置说明

2.1虚拟服务器的配置结构

virtual_server IP port {

...

real_server {

...

}

real_server {

...

}

}

2.2 虚拟服务器的配置

virtual_server IP port { #VIP和PORT

delay_loop <INT>                                                       #检查后端服务器的时间间隔

lb_algo rr|wrr|lc|wlc|lblc|sh|dh                                     #定义调度方法

lb_kind NAT|DR|TUN                                                  #集群的类型,注意要大写

persistence_timeout <INT>                                         #持久连接时长

protocol TCP|UDP|SCTP                                            #指定服务协议,一般为TCP

sorry_server <IPADDR> <PORT>                              #所有RS故障时,备用服务器地址

real_server <IPADDR> <PORT> {                              #RS的IP和PORT

weight <INT>                                                               #RS权重

notify_up <STRING>|<QUOTED-STRING>                #RS上线通知脚本

notify_down <STRING>|<QUOTED-STRING>            #RS下线通知脚本

HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK { ... } #定义当前主机健康状态检测方法

           }

}

#注意:括号必须分行写,两个括号写在同一行,如: }} 会出错

2.3 应用层检测:HTTP_GETSSL_GET

HTTP_GET|SSL_GET {

url {

path <URL_PATH>                               #定义要监控的URL

status_code <INT>                               #判断上述检测机制为健康状态的响应码,一般为 200

}

connect_timeout <INTEGER>        #客户端请求的超时时长, 相当于haproxy的timeout server

nb_get_retry <INT>                         #重试次数

delay_before_retry <INT>               #重试之前的延迟时长

connect_ip <IP ADDRESS>            #向当前RS哪个IP地址发起健康状态检测请求

connect_port <PORT>                    #向当前RS的哪个PORT发起健康状态检测请求

bindto <IP ADDRESS>                   #向当前RS发出健康状态检测请求时使用的源地址

bind_port <PORT>                         #向当前RS发出健康状态检测请求时使用的源端口

}

2.4 传输层检测:TCP_CHECK

TCP_CHECK {

connect_ip <IP ADDRESS>          #向当前RS的哪个IP地址发起健康状态检测请求

connect_port <PORT>                  #向当前RS的哪个PORT发起健康状态检测请求

bindto <IP ADDRESS>                  #发出健康状态检测请求时使用的源地址

bind_port <PORT>                        #发出健康状态检测请求时使用的源端口

connect_timeout <INTEGER>       #客户端请求的超时时长

                                                       #等于haproxy的timeout server

}

3、 实现LVS+keepalived的高可用性负载均衡集群

3.1 实验环境

主机名

IP

VIP

角色

Ka1

192.168.182.145

高可用负载均衡器

Ka2

192.168.182.146

高可用负载均衡器

Webserver1

192.168.182.151

192.168.182.100

后端服务器

Webserver2

192.168.182.152

192.168.182.100

后端服务器

client

192.168.182.154

客户端

3.2 准备web服务器并使用脚本绑定VIP至web服务器lo网卡

#准备两台后端服务器主机

[root@webserver1 ~]# echo webserver1 - 192.168.182.151 > /var/www/html/index.html

[root@webserver1 ~]# systemctl start httpd.service

[root@webserver2 ~]# echo webserver2 - 192.168.182.152 > /var/www/html/index.html

[root@webserver2 ~]# systemctl start httpd.service

#后端服务器做arp抑制

[root@webserver1 ~]# vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

[root@webserver2 ~]# vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

#使用ipvsadm工具

[root@ka2 ~]# dnf install ipvsadm

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

virtual_server 192.168.182.100 80 {

        delay_loop 6               #检查后端服务器的时间间隔

        lb_algo wrr                  #定义调度方法

        lb_kind DR                #集群的类型,注意要大写

        protocol TCP               #指定服务协议

        real_server 192.168.182.151 80 {                    #真实服务器的IP和端口

                weight 1

                HTTP_GET {

                        url {

                                path /                          #重试之前的延迟时长

                                status_code 200         #判断上述检测机制为健康状态的响应码,一般为 200

                        }

                        connect_timeout 3         #客户端请求的超时时长, 相当于haproxy的timeout server

                        nb_get_retry 2                 #重试次数

                        delay_before_retry 2      #重试之前的延迟时长

                }

        }

        real_server 192.168.182.152 80 {

                weight 1

                HTTP_GET {

                        url {

                                path /

                                status_code 200

                        }

                        connect_timeout 3

                        nb_get_retry 2

                        delay_before_retry 2

                }

        }

}

[root@ka1 ~]# systemctl restart keepalived.service

[root@ka2 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.182.100:80 wrr

  -> 192.168.182.151:80           Route   1      0          0        

  -> 192.168.182.152:80           Route   1      0          0

Ka1ka2主机相同配置

3.3 模拟测试:

[root@webserver1 ~]# systemctl stop httpd.service

[root@ka2 ~]# ipvsadm -Ln                 #它会自动将故障服务器剔除

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.182.100:80 wrr

  -> 192.168.182.152:80           Route   1      0          0  

#修复好后自动添加回来

相关文章:

Keepalived + LVS实现高可用

1、简介 LVS和Keepalived是Linux操作系统下实现高可用的负载均衡解决方案的重要工具。通过协同工作&#xff0c;它们能够实现一种高性能、高可用的负载均衡服务&#xff0c;使得用户能够透明地访问到集群中的服务。同时&#xff0c;它们还提供了强大的监控和故障切换功能&#…...

Gin框架接入Prometheus,grafana辅助pprof检测内存泄露

prometheus与grafana的安装 grom接入Prometheus,grafana-CSDN博客 Prometheus 动态加载 我们想给Prometheus新增监听任务新增ginapp项目只需要在原来的配置文件下面新增ginapp相关metric 在docker compose文件下面新增 执行 docker-compose up -d curl -X POST http://lo…...

上海凯泉泵业入职测评北森题库题型分析、备考题库、高分攻略

上海凯泉泵业&#xff08;集团&#xff09;有限公司是一家大型综合性泵业公司&#xff0c;专注于设计、生产、销售泵、给水设备及其控制设备。作为中国泵行业的领军企业&#xff0c;凯泉集团拥有7家企业和5个工业园区&#xff0c;总资产达到25亿元&#xff0c;生产性建筑面积35…...

Linux:基础IO

目录 1. stdin & stdout & stderr 2. 系统文件I/O 1. 接口介绍 open write read close lseek 2. open函数返回值 3. 文件描述符fd 0 & 1 & 2 文件描述符的分配规则 重回定向 dup2 简易Shell的模拟实现 4. FILE 5. 再谈对文件的理解 1. stdin …...

奥运奖牌窥视

1 前言 2024巴黎奥运会已经闭幕了&#xff0c;中国队创纪录地获得了海外举办的奥运会的最佳成绩&#xff0c;我们来个管中窥豹&#xff0c;看看中国队从哪些项目中取得了奖牌。 2 奖牌组成 游泳真是大项&#xff0c;小项数量众多&#xff0c;比如个人自由泳就有100m、200m、4…...

RUST实现远程操作电脑手机

简介&#xff1a; Rust Desk 是一个开源的远程桌面软件&#xff0c;能够完全替代向日葵和ToDesk的功能&#xff0c;包括电脑控制电脑、电脑控制手机、手机控制电脑等。它是完全免费的。 下载&#xff1a; 需要下载 Rust Desk 的服务端和客户端安装包。 安装&#xff1a; 服务…...

spring01-spring容器启动过程分析

【README】 本文总结自《spring揭秘》&#xff0c;作者王福强&#xff0c;非常棒的一本书&#xff0c;墙裂推荐&#xff1b; spring容器根据配置元素组装可用系统分2个阶段&#xff0c;包括spring容器启动&#xff0c; springbean实例化阶段&#xff1b; 本文详细分析spring容…...

RAG与LLM原理及实践(12)--- Milvus RRFRanker的使用场景及源码分析

目录 背景 rrfRanker 简介与实例 核心逻辑 实例 蕴含思想 rrfRanker VS weightedRanker rrfRanker weightedRanker 场景使用区别 RRFRanker 使用场景 weightedRanker 使用场景 代码 代码实现 运行结果 修改代码 再次运行结果 源码 源码实现 解释 Ranker 可…...

Nginx与Tomcat的区别

Nginx与Tomcat的区别 —— 经验笔记 引言 在现代Web开发中&#xff0c;选择合适的服务器软件对于构建高性能、可靠的应用程序至关重要。Nginx 和 Tomcat 是两种常见的服务器软件&#xff0c;尽管它们都可以被归类为Web服务器&#xff0c;但它们的设计目标和应用场景有着本质的…...

LeetCode 3151.特殊数组 I

【LetMeFly】3151.特殊数组 I 力扣题目链接&#xff1a;https://leetcode.cn/problems/special-array-i/ 如果数组的每一对相邻元素都是两个奇偶性不同的数字&#xff0c;则该数组被认为是一个 特殊数组 。 Aging 有一个整数数组 nums。如果 nums 是一个 特殊数组 &#xff…...

【产品那些事】The OX Active ASPM Platform

文章目录 前言关于OX Security产品理念 流程体验Complete Visibility&#xff1a;将安全无缝嵌入到SDLC中PBOMOSC&R coverageContextualized Prioritization&#xff1a;快速解决最关键的风险Accelerated Response&#xff1a;简化安全流程See Beyond the Code&#xff1a;…...

欢迪迈手机商城设计与开发

TOC springboot137欢迪迈手机商城设计与开发 绪论** 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0…...

Endnote与word关联 解决方案: COM加载项-----》CWYW插件安装

1、首先说一下本次情况&#xff0c;office的版本是2019&#xff0c;后安装的Endnote 9。旧版word也可按此方法尝试。 2、先找到关键的EndNote Cwyw.dll文件。应在此目录下&#xff1a;C:\Program Files (x86)\EndNote X7\Product-Support\CWYW。 3、如没有EndNote Cwyw.dll文…...

用R语言运用 Shiny 包打造基于鸢尾花数据集的交互式数据可视化应用

下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容&#xff0c;每篇文章都在 5000 字以上&#xff0c;质量平均分高达 94 分&#xff0c;看全文请点击下面链接&#xff1a; 1章4节&#xff1a;数据可视化&#xff0c; R 语言的静态绘图和 Shiny 的交互可视化演…...

Upload-Lab第3关:如何巧妙应对黑名单文件后缀检测?

关卡介绍 在Pass03中,我们面临的挑战是绕过文件上传功能的黑名单检测机制。黑名单检测是一种常见的安全措施,它通过检查上传文件的后缀来阻止特定类型的文件(如 .php, .exe)被上传。在这一关,我们需要找到一种方法,上传一个可以执行的恶意文件,同时绕过黑名单检测。 …...

SSLVPN对比IPSECVPN安全设备的起源、发展、以及目前行业使用场景

前言 SSL VPN&#xff08;Secure Sockets Layer Virtual Private Network&#xff09;是一种利用SSL/TLS&#xff08;Transport Layer Security&#xff0c;传输层安全&#xff09;协议来创建安全连接的技术&#xff0c;它允许远程用户通过公共网络&#xff08;通常是互联网&am…...

Hadoop大数据集群搭建

一、虚拟机配置网络 1、配置文件 进入“/etc/sysconfig/network-scripts”目录&#xff0c;查看当前目录下的“ifcfg-ens33”文件 对“ens33”文件进行配置 2、重启网络 systemctl restart network 3、测试网络 Ping www.baidu.com 4、设置虚拟机主机名称 5、绑定主机名和…...

【技术前沿】MetaGPT入门安装部署——用多个大语言模型解决任务!一键安装,只需填写OpenAI API

项目简介 MetaGPT 是一个多智能体框架&#xff0c;旨在构建全球首家 “AI 软件公司”。该项目通过为 GPT 分配不同的角色&#xff0c;模拟产品经理、架构师、工程师等职业&#xff0c;协同完成复杂的软件开发任务。MetaGPT 将一个简单的需求转化为完整的软件开发流程&#xff…...

#compsoer基本使用01#

Composer 是 PHP 的依赖管理工具&#xff0c;它允许开发人员管理和安装项目所需的依赖包。 1:查看Compsoer的全局配置命令 composer config -g --list --verbose 这个可以查看composer的镜像地址。例如 [repositories.packagist.org] type (string) : composer [repositor…...

基于c++的yolov5推理之前处理详解及代码(一)

目录 一、前言&#xff1a; 二、关于环境安装&#xff1a; 三、首先记录下自己的几个问题 问题&#xff1a;c部署和python部署的区别&#xff1f; 四、正文开始 4.1 图像预处理讲解 1、BGR---->RBG 2、等比例放缩图片&#xff08;涉及到短边的填充&#xff09; 3、归一化…...

ChatBI 开源产品实战解析:从语义层到Agent,如何选择你的AI数据助手?

1. 为什么企业需要AI数据助手&#xff1f; 想象一下这个场景&#xff1a;市场部的小王需要统计上季度各区域的销售数据&#xff0c;他对着Excel表格里密密麻麻的数字发愁&#xff0c;不得不找IT部门帮忙写SQL查询。三天后拿到数据时&#xff0c;业务窗口期已经错过——这是很多…...

既然有 HTTP 协议,为什么还要有 RPC?

HTTP 和 RPC 都能解决网络通信问题&#xff0c;但它们的设计初衷和适用场景截然不同。简单来说&#xff0c;HTTP 是为了通用性和跨平台设计的&#xff08;像万能的集装箱&#xff09;&#xff0c;而 RPC 是为了极致的性能和开发效率设计的&#xff08;像工厂内部的高速流水线&a…...

从YOLOv5到YOLOv8:停车位检测模型演进与实战性能对比

1. YOLO系列模型的技术演进路径 YOLO&#xff08;You Only Look Once&#xff09;系列模型作为目标检测领域的标杆算法&#xff0c;从2015年诞生至今已经经历了多次重大迭代。每次版本更新都带来了显著的性能提升和架构创新&#xff0c;这使得YOLO系列在实时目标检测任务中始终…...

OpenClaw技能扩展:用QwQ-32B实现公众号自动发布

OpenClaw技能扩展&#xff1a;用QwQ-32B实现公众号自动发布 1. 为什么需要公众号自动化发布 作为一个技术博主&#xff0c;我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身&#xff0c;而是发布前的繁琐流程&#xff1a;手动调整Markdown格式、生成封面图、上…...

腾讯王者荣耀强化学习环境:打造专业AI训练平台的完整指南

腾讯王者荣耀强化学习环境&#xff1a;打造专业AI训练平台的完整指南 【免费下载链接】hok_env Honor of Kings AI Open Environment of Tencent 项目地址: https://gitcode.com/gh_mirrors/ho/hok_env 在人工智能研究领域&#xff0c;游戏环境一直是强化学习算法的理想…...

Wan2.2-I2V-A14B企业应用:品牌广告片AI辅助生成+人工精修工作流

Wan2.2-I2V-A14B企业应用&#xff1a;品牌广告片AI辅助生成人工精修工作流 1. 企业级视频创作新范式 在品牌营销领域&#xff0c;高质量视频内容的需求正呈指数级增长。传统视频制作流程面临三大痛点&#xff1a;创意实现周期长、专业团队成本高、批量生产难度大。Wan2.2-I2V…...

OpenClaw数据安全实践:Qwen3-32B+RTX4090D本地化处理敏感财报

OpenClaw数据安全实践&#xff1a;Qwen3-32BRTX4090D本地化处理敏感财报 1. 为什么金融从业者需要本地化AI处理 去年我在帮一家私募基金做季度财报分析时&#xff0c;遇到了一个尴尬场景&#xff1a;当我把客户PDF财报上传到某公有云AI平台提取关键指标后&#xff0c;第二天就…...

Ling-1T万亿参数模型:高效推理新体验

Ling-1T万亿参数模型&#xff1a;高效推理新体验 【免费下载链接】Ling-1T-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ling-1T-FP8 导语&#xff1a;近日&#xff0c;inclusionAI团队正式发布了Ling系列2.0版本的旗舰模型——Ling-1T-FP8&#xff…...

MBPFan:解决MacBook Linux系统散热难题的智能温控工具

MBPFan&#xff1a;解决MacBook Linux系统散热难题的智能温控工具 【免费下载链接】mbpfan 项目地址: https://gitcode.com/gh_mirrors/mb/mbpfan 当你在Linux系统下使用MacBook处理文档、编写代码或观看视频时&#xff0c;是否遇到过设备突然发烫、风扇噪音忽大忽小的…...

AutoHotkey实战:5分钟搞定Mac/Windows跨平台快捷键统一(附完整脚本)

AutoHotkey实战&#xff1a;5分钟搞定Mac/Windows跨平台快捷键统一&#xff08;附完整脚本&#xff09; 对于频繁切换Mac和Windows双系统的开发者来说&#xff0c;最令人抓狂的莫过于两种操作系统下完全不同的快捷键体系。特别是Cmd/Ctrl键位的混乱&#xff0c;常常让人在复制粘…...