使用ldirectord实现LVS健康检测

注意:在LVS/DR模式环境下,具体配置见上篇LVS/DR配置

1.1 ldirectord介绍

  • LVS监控: ldirectord 主要设计用于监控Linux虚拟服务器(LVS)架构中的服务器池状态。LVS是一种负载均衡解决方案,用于将网络流量和请求分发到多个服务器上。

  • 运行环境: ldirectord 运行在IPVS节点上,即负载均衡器所在的服务器上。

  • 守护进程: 它作为一个守护进程运行,这意味着它会在后台持续运行,监控服务器池中服务器的状态。

  • 健康检查: ldirectord 通过向服务器池中的每个真实服务器发送请求来执行健康检查。这些请求可以是TCP连接、HTTP请求或其他类型的网络请求,具体取决于配置。

  • 自动管理: 如果某个服务器没有响应 ldirectord 发送的请求,ldirectord 会认为该服务器不可用,并使用 ipvsadm 工具从IPVS表中删除该服务器的条目。ipvsadm 是一个用于管理IP虚拟服务器的命令行工具。

  • 恢复处理: 当不可用的服务器再次变得可用并能够响应健康检查时,ldirectord 同样会使用 ipvsadm 将该服务器重新添加到IPVS表中。

  • 高可用性: 通过自动添加和删除服务器,ldirectord 有助于维护LVS架构的高可用性,确保流量始终被分发到健康的服务器上。

  • 配置灵活: ldirectord 允许管理员自定义健康检查的频率、类型和超时设置,以适应不同的监控需求。

  • 日志和监控: 它可能还提供日志记录功能,帮助系统管理员跟踪服务器状态的变化和 ldirectord 的操作。

  • 开源社区: 作为一个开源工具,ldirectord 可能会有一个活跃的社区,提供支持和分享最佳实践。

1.1.1 模拟一台Nginx宕机

[root@LVS-RS2 ~]# systemctl stop nginx.service 
​
[root@LVS ~]# ipvsadm -Ln   #并没有将RS2删除
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.110.10:80 rr
  -> 192.168.110.32:80            Route   1      0          10        
  -> 192.168.110.33:80            Route   1      5          5       
​
[root@Client ~]# for ((i=1;i<=10;i++)); do curl http://192.168.110.10; done
curl: (7) Failed to connect to 192.168.110.10 port 80: Connection refused
This is LVS test IP=192.168.110.32  Host=LVS-RS1
curl: (7) Failed to connect to 192.168.110.10 port 80: Connection refused
This is LVS test IP=192.168.110.32  Host=LVS-RS1
curl: (7) Failed to connect to 192.168.110.10 port 80: Connection refused
This is LVS test IP=192.168.110.32  Host=LVS-RS1
curl: (7) Failed to connect to 192.168.110.10 port 80: Connection refused
This is LVS test IP=192.168.110.32  Host=LVS-RS1
curl: (7) Failed to connect to 192.168.110.10 port 80: Connection refused
This is LVS test IP=192.168.110.32  Host=LVS-RS1

1.2 使用ldirectord实现LVS/DR的高可用

机器名称IP地址子网掩码说明
LVS192.168.110.41255.255.255.0负载均衡器
RS1192.168.110.32255.255.255.0真实服务器1
RS2192.168.110.33255.255.255.0真实服务器2
Client192.168.110.34255.255.255.0客户端

1.2.1 安装部署

[root@LVS ~]# yum install ldirectord -y    #Rocky 8 仓库没有这个包

1.2.2 配置

[root@LVS ~]# cp /usr/share/doc/ldirectord/ldirectord.cf /etc/ha.d/ldirectord.cf
[root@LVS ~]# vim /etc/ha.d/ldirectord.cf   #修改配置如下
# Global Directives
checktimeout=3
checkinterval=1
#fallback=127.0.0.1:80
#fallback6=[::1]:80
autoreload=yes
#logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=no
​
# Sample for an http virtual service
virtual=192.168.110.10:80
        real=192.168.110.32:80 gate
        real=192.168.110.33:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr
        protocol=tcp
        checktype=negotiate
        checkport=80
        
[root@LVS ~]# systemctl start ldirectord.service

1.2.1 测试

[root@LVS ~]# watch -n 5 ipvsadm -Ln  #可以实时监控
​
[root@LVS ~]# 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.110.10:80 rr
  -> 192.168.110.32:80            Route   1      0          0         
  -> 192.168.110.33:80            Route   1      0          0   
  
[root@LVS-RS2 ~]# systemctl stop nginx.service  #模拟宕机
​
[root@LVS ~]# 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.110.10:80 rr
  -> 192.168.110.32:80            Route   1      0          0      
  
[root@Client ~]# for ((i=1;i<=10;i++)); do curl http://192.168.110.10; done  #请求全部转到RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
This is LVS test IP=192.168.110.32  Host=LVS-RS1
​
[root@LVS-RS2 ~]# systemctl start nginx.service 
​
[root@LVS ~]# 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.110.10:80 rr
  -> 192.168.110.32:80            Route   1      0          10        
  -> 192.168.110.33:80            Route   1      0          0        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++学习第十六课:宏与模板的基础讲解示例

C学习第十六课&#xff1a;宏与模板的深度解析 宏和模板是C中两个强大的特性&#xff0c;它们都允许编写灵活且通用的代码。宏通过预处理器实现&#xff0c;而模板则是C的编译时特性。本课将深入探讨宏的定义、使用以及潜在的问题&#xff0c;以及模板的基本使用、特化、偏特化…

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡的二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题&#xff1a;LeetCode 110.平衡二叉树 思路及…

羽毛多肽复合纳米纤维膜

羽毛多肽复合纳米纤维膜是一种结合了羽毛多肽和其他纳米纤维材料&#xff08;如P(MA-AA)等&#xff09;的新型生物材料。这种复合纳米纤维膜通过引入羽毛多肽&#xff0c;进一步提升了其生物相容性、生物活性以及吸附性能。 羽毛多肽作为一种天然生物材料&#xff0c;具有良好的…

Centos7+Hadoop3.3.4+KDC1.15+Ranger2.4.0集成

一、集群规划 本次测试采用3台虚拟机&#xff0c;操作系统版本为centos7.6。 kerberos采用默认YUM源安装&#xff0c;版本为&#xff1a;1.15.1-55 Ranger版本为2.4.0 系统用户为ranger:ranger IP地址主机名KDCRanger192.168.121.101node101.cc.localKDC masterRanger Admin…

Spring6 当中的 Bean 循环依赖的详细处理方案+源码解析

1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析 文章目录 1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析每博一文案1.1 Bean的循环依赖1.2 singletion 下的 set 注入下的 Bean 的循环依赖1.3 prototype下的 set 注入下的 Bean 的循环依赖1.4 singleton下的构…

MouseBoost PRO for Mac激活版:强大的 鼠标增强软件

在追求高效工作的今天&#xff0c;MouseBoost PRO for Mac成为了许多Mac用户的得力助手。这款功能强大的鼠标增强软件&#xff0c;以其独特的智能化功能和丰富的实用工具&#xff0c;让您的电脑操作更加便捷、高效。 MouseBoost PRO for Macv3.4.0中文激活版下载 MouseBoost PR…

Hotcoin Research | 市场洞察:2024年4月22日-28日

加密货币市场表现 本周内加密大盘整体呈现出复苏状态&#xff0c;在BTC减半后进入到震荡上行周期。BTC在$62000-66000徘徊&#xff0c;ETH在$3100-3300徘徊&#xff0c;随着港交所将于 4 月 30 日开始交易嘉实基金的比特币和以太坊现货 ETF&#xff0c;周末行情有一波小的拉升…

帮助 Python 用户构建 CLI 界面:直观易写、简单高效 | 开源日报 No.240

tiangolo/typer Stars: 13.7k License: MIT typer 是一个构建出色命令行界面&#xff08;CLI&#xff09;的库&#xff0c;基于 Python 类型提示。它旨在让开发者轻松创建用户喜欢使用的 CLI 应用程序。其主要功能和核心优势包括&#xff1a; 直观易写&#xff1a;强大编辑器…

vue3 jspdf,element table 导出excel、pdf,横板竖版分页

多个表格需要&#xff0c;pdf需要的格式与原本展示的表格样式不同 1.创建一个新的表格&#xff0c;设置pdf需要的样式&#xff0c;用vue的h函数放入dom中 2.excel用xlxs插件直接传入新建el-table的dom,直接导出 3.pdf导出类似excel黑色边框白底黑字的文件&#xff0c;把el-t…

FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

OBS是一个开源的直播录制软件&#xff0c;英文全称叫做Open Broadcaster Software&#xff0c;广泛用于视频录制、实时直播等领域。OBS不但开源&#xff0c;而且跨平台&#xff0c;兼容Windows、Mac OS、Linux等操作系统。 OBS的官网是https://obsproject.com/&#xff0c;录制…

STM32利用硬件I2C读取MPU6050陀螺仪数据

有了前面的基本配置&#xff0c;这节读取MPU6050的数据还算是简单&#xff0c;主要就是初始化时给MPU6050一些配置&#xff0c;取消睡眠模式&#xff0c;MPU6050开机是默认睡眠模式的&#xff0c;读写无效&#xff0c;所以上来就要先更改配置&#xff1a; MPU6050寄存器初始化…

mongodb卸载(win)

关闭服务 &#xff08;或者cmd卸载服务&#xff1a;&#xff09; net stop 服务名称卸载应用 至此&#xff0c;卸载完成&#xff01;

微隔离实施五步法,让安全防护转起来

前言 零信任的最核心原则→最小权限 安全的第一性原理→预防 零信任的最佳实践→微隔离 “零信任”这个术语的正式出现&#xff0c;公认是在2010年由Forrester分析师John Kindervag最早提出。时至今日&#xff0c;“零信任”俨然已成安全领域最热门的词汇&#xff0c;做安全…

实验报告5-Spring MVC实现页面

实验报告5-SpringMVC实现页面 一、需求分析 使用Spring MVC框架&#xff0c;从视图、控制器和模型三方面实验动态页面。模拟实现用户登录&#xff0c;模拟的用户名密码以模型属性方式存放在Spring容器中&#xff0c;控制器相应用户请求并映射参数&#xff0c;页面收集用户数据或…

设计模式-01 设计模式单例模式

设计模式-01 设计模式单例模式 目录 设计模式-01 设计模式单例模式 1定义 2.内涵 3.使用示例 4.具体代码使用实践 5.注意事项 6.最佳实践 7.总结 1 定义 单例模式是一种设计模式&#xff0c;它确保一个类只能被实例化一次。它通过在类内部创建类的唯一实例并提供一个全…

uniapp + uView动态表单校验

项目需求&#xff1a;动态循环表单&#xff0c;并实现动态表单校验 页面&#xff1a; <u--form label-position"top" :model"tmForm" ref"tmForm" label-width"0px" :rulesrules><div v-for"(element, index) in tmForm…

(详细整理!!!!)Tensorflow与Keras、Python版本对应关系!!!

小伙伴们大家好&#xff0c;不知道大家有没有被tensorflow框架困扰过 今天我就给大家整理一下tensorflow和keras、python版本的对应关系 大家这些都可以在官网找到&#xff0c;下面我把官网的连接给大家放在这里&#xff1a;在 Windows 环境中从源代码构建 | TensorFlow (g…

搭建大型分布式服务(三十七)SpringBoot 整合多个kafka数据源-取消限定符

系列文章目录 文章目录 系列文章目录前言一、本文要点二、开发环境三、原项目四、修改项目五、测试一下五、小结 前言 本插件稳定运行上百个kafka项目&#xff0c;每天处理上亿级的数据的精简小插件&#xff0c;快速上手。 <dependency><groupId>io.github.vipjo…

基于 React 的图形验证码插件

react-captcha-code NPM 地址 &#xff1a; react-captcha-code - npm npm install react-captcha-code --save 如下我自己的封装&#xff1a; import Captcha from "react-captcha-code";type CaptchaType {captchaChange: (captchaInfo: string) > void;code…

前端发起网络请求的几种常见方式(XMLHttpRequest、FetchApi、jQueryAjax、Axios)

摘要 前端发起网络请求的几种常见方式包括&#xff1a; XMLHttpRequest (XHR)&#xff1a; 这是最传统和最常见的方式之一。它允许客户端与服务器进行异步通信。XHR API 提供了一个在后台发送 HTTP 请求和接收响应的机制&#xff0c;使得页面能够在不刷新的情况下更新部分内容…
最新文章