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

Keepalived+LVS部署高可用集群

文章目录

    • Keepalived+LVS(DR)部署高可用Web集群
      • 集群环境
      • MASTER配置
      • BACKUP配置
      • 检查Virtual IP是否漂移
      • IPVS检查
        • MASTER
        • BACKUP
      • Real Server配置
        • 附上个人写的小脚本
      • 测试
        • 停用Real Server某一台的Apache服务
        • 停用Master上的keepalived检测Backup是否接管资源

Keepalived+LVS(DR)部署高可用Web集群

集群环境

主机角色服务
192.168.110.134MASTERKeepalived
192.168.110.137BACKUPKeepalived
192.168.110.136Real server1HTTPD
192.168.110.145Real server2HTTPD

MASTER配置

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_BACKUPvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.110.252}
}virtual_server 192.168.110.252 80 {delay_loop 6lb_algo wrrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.110.136 80 {weight 1TCP_CHECK {retry 3connect_timeout 3nb_get_retry 3delay_before_retry 3conncet_port 80}}real_server 192.168.110.136 80 {weight 1TCP_CHECK {retry 3connect_timeout 3nb_get_retry 3delay_before_retry 3conncet_port 80}}}
}

BACKUP配置

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_BACKUPvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.110.252}
}virtual_server 192.168.110.252 80 {delay_loop 6lb_algo wrrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.110.136 80 {weight 1TCP_CHECK{connect_timeout 3retry 3delay_before_retry 3connect_port 80}}real_server 192.168.110.145 80 {weight 1TCP_CHECK{connect_timeout 3retry 3delay_before_retry 3connect_port 80}}}
}

检查Virtual IP是否漂移

[root@keepalived ~]# ip addr| grep "252"inet 192.168.110.252/32 scope global ens33
[root@localhost ~]# ip addr| grep "252"
[root@localhost ~]# #关闭服务Keepalived-MASTER
[root@keepalived ~]# systemctl stop keepalived.service 
[root@keepalived ~]# ip addr| grep "252"
[root@keepalived ~]# 
[root@localhost ~]# ip addr| grep "252"inet 192.168.110.252/32 scope global ens160

IPVS检查

前提下载ipvsadm

MASTER

[root@keepalived ~]# 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.252:80 wrr persistent 50-> 192.168.110.136:80           Route   1      0          0         -> 192.168.110.145:80           Route   1      0          0 

BACKUP

[root@localhost ~]# 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.252:80 wrr persistent 50-> 192.168.110.136:80           Route   1      0          0         -> 192.168.110.145:80           Route   1      0          0

Real Server配置

#将VIP绑定至环回网卡
[root@webserver ~]# ifconfig lo:eth1 192.168.110.252 netmask 255.255.255.255 up
#ARP抑制
[root@webserver ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver ~]# route add -host 192.168.110.252 dev lo

附上个人写的小脚本

#!/bin/bash
read -p "Enter the Virtual IP : " vip
ifconfig lo:eth1 $vip netmask 255.255.255.255 up
if [ $? -eq 0 ]
thenecho -e "\033[32m OK \033[0m" 
elseecho -e "\033[31m Failed \033[0m"
fi
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
if [ $? -eq 0 ]
thenecho -e "\033[32m OK \033[0m" 
elseecho -e "\033[31m Failed \033[0m"
fi
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
if [ $? -eq 0 ]
thenecho -e "\033[32m OK \033[0m" 
elseecho -e "\033[31m Failed \033[0m"
fi
route add -host $vip dev lo
if [ $? -eq 0 ]
thenecho -e "\033[32m OK \033[0m" 
elseecho -e "\033[31m Failed \033[0m"
fi

大家可以根据自己需要做调整。

测试

停用Real Server某一台的Apache服务

#在Master上动态监测
[root@keepalived ~]# watch -n 0.5 ipvsadm -ln 
#RS
[root@docker ~]# systemctl stop httpd

这里效果需要自己方能看出来。

停用Master上的keepalived检测Backup是否接管资源

#停用前
C:\Users\SuperMe>curl 192.168.110.252
Web Test Of 192.168.110.145C:\Users\SuperMe>curl 192.168.110.252
Web Test Of 192.168.110.145
#停用后
[root@keepalived ~]# systemctl stop keepalived.service
C:\Users\SuperMe>curl 192.168.110.252
Web Test Of 192.168.110.145C:\Users\SuperMe>curl 192.168.110.252
Web Test Of 192.168.110.145[root@localhost ~]# 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.252:80 wrr persistent 50-> 192.168.110.136:80           Route   1      0          0         -> 192.168.110.145:80           Route   1      0          5#可以看出来资源被接管后145被访问了5此

相关文章:

Keepalived+LVS部署高可用集群

文章目录 KeepalivedLVS(DR)部署高可用Web集群集群环境MASTER配置BACKUP配置检查Virtual IP是否漂移IPVS检查MASTERBACKUP Real Server配置附上个人写的小脚本 测试停用Real Server某一台的Apache服务停用Master上的keepalived检测Backup是否接管资源 KeepalivedLVS(DR)部署高可…...

2023河南萌新联赛第(五)场:郑州轻工业大学

A.买爱心气球 原题链接 : 登录—专业IT笔试面试备考平台_牛客网 博弈论 : #include <iostream> using namespace std; int t,n,m; string s1 "Alice",s2 "Bob"; int main() {cin>>t;while(t--){cin>>n>>m;if (n % 3 0) {cou…...

在Orangepi5开发板3588s使用opencv获取摄像头画面

先感谢香橙派群的管理员耐心指导&#xff0c;经过不断的调试修改最后成功通过opencv调用mipi摄像头获取画面 就记录分享一下大概步骤希望大家少踩点坑&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我用的固件系统是ubuntu2022.0.4 固件是&#x…...

音视频 ffmpeg命令分类查询

命令参数内容-version显示版本 -bsfs 显示可用比特流filter-buildconf显示编译配置-formats显示可用格式(muxersdemuxers)-muxers显示可用复用器-demuxers显示可用解复用器-codecs显示可用编解码器(decodersencoders)-decoders显示可用解码器-encoders显示可用编码器-bsfs显示可…...

VSCode无法从Extensions下载工具时,把工具下载到本地并添加到VSCode编辑器

从VSCode 的 Extensions 下载 下载报错&#xff1a;Error while installing ...... extension. Please check the log for more details. 由于内网限制&#xff08;或者其他网络限制&#xff09;无法正常下载扩展工具到VSCode编辑器&#xff0c;可以把工具下载到本地再添加到V…...

WebStrom 前端项目Debug

1. 正常启动前端项目 2. 配置webStrom的JavaScript Debugger 点击Edit Configurations添加avaScript Debug填写URL 为项目启动路径配置要Debug的浏览器-remote-allow-origins* &#xff08;最重要&#xff0c;否则唤起的是一个about:blank空白页面&#xff09; 3. 启动Debug模…...

【ARM Linux 系统稳定性分析入门及渐进12 -- GDB内存查看命令 “x“(examine)】

文章目录 gdb 内存查看命令 examine 上篇文章&#xff1a;ARM Linux 系统稳定性分析入门及渐进11 – GDB( print 和 p 的使用| 和 &#xff1a;&#xff1a;的使用|ptype|{&#xff1c;type&#xff1e;} &#xff1c;addr&#xff1e; ) gdb 内存查看命令 examine examine是…...

kube-prometheus 系列1 项目介绍

Prometheus 已经成为云原生监控的事实标准。整个生态包含诸多组件&#xff0c;为了简化安装部署和配置高可用等&#xff0c;社区开发了kube-prometheus项目。接下来用一系列文章介绍一下相关配置。 项目简介&#xff1a; kube-prometheus 是一个基于 Kubernetes 部署的 Prometh…...

深度学习在组织病理学图像分析中的应用: Python实现和代码解析

引言 组织病理学是医学的一个重要分支&#xff0c;它主要研究组织和细胞的形态学改变&#xff0c;以确定疾病的性质和发展。随着深度学习技术的进步&#xff0c;其在组织病理学图像分析中的应用也变得日益重要。本文旨在介绍如何使用Python和深度学习技术来处理和分析组织病理…...

kotlin的列表

在 kotlin中&#xff0c;列表是一种常见的数据结构&#xff0c;用于存储有序的元素集合。 kotlin的标准库提供了 List 接口及其实现类 ArrayList、LinkedList 等&#xff0c;以及一些扩展函数来操作和处理列表。 1.创建列表 // 创建一个可变列表 val mutableList mutableLis…...

PCL 三维点云边界提取(C++详细过程版)

边界提取 一、概述二、代码实现三、结果展示本文由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 点云边界提取在PCL里有现成的调用函数,具体算法原理和实现代码见:PCL 点云边界提取。为充分了解pcl::BoundaryEsti…...

../../ 目录遍历

在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再执行其对应的文件。 在这个过程中&#xff0c;如果后…...

clickhouse集群部署

一、集群部署简介 部署的详情可以看官网 先部署两个server,三个keeper[zookeeper] clickhouse之前依赖的存储是zookeeper,后来改为了keeper,官网给出了原因 所以这就决定了clickhouse有两种安装方式&#xff0c;依赖于keeper做存储或者依赖于zookeeper做存储 二、zookeeper作…...

centos8 使用phpstudy安装tomcat部署web项目

系统配置 1、安装Tomcat 2、问题 正常安装完Tomcat应该有个配置选项&#xff0c;用来配置server.xml web.xml 还有映射webapps路径选项&#xff0c;但是我用的这个版本并没有。所以只能曲线救国。 3、解决 既然没有配置项&#xff0c;那就只能按最基本的方法配置&#xff0c…...

爬虫百度返回“百度安全验证”终极解决方案

这篇文章也可以在我的博客查看 爬不了啊&#xff01;&#xff01; 最近一哥们跟我说百度爬虫爬不了 弹出&#xff1a;“百度安全验证”&#xff0c;“网络不给力&#xff0c;请稍后重试” 说到爬虫&#xff0c;这里指的是Python中最常用的requests库 我说怎么爬不了了&#x…...

visual studio 2022配置

前提&#xff1a;我linux c 开发 一直在使用vscode 更新了个版本突然代码中的查找所用引用和变量修改名称不能用了&#xff0c;尝试了重新配置clang vc都不行&#xff0c;估计是插件问题&#xff0c;一怒之下改用visual studio 2022 为了同步2个IDE之间的差别&#xff0c;目前…...

B-树和B+树的区别

B-树和B树的区别 一、B-tree数据存储 在下图中 P 代表的是指针&#xff0c;指向的是下一个磁盘块。在第一个节点中的 16、24 就是代表我们的 key 值是什么。date 就是这个 key 值对应的这一行记录是什么。 假设寻找 key 为 33 的这条记录&#xff0c;33 在 16 和 34 中间&am…...

c注册cpp回调函数

在C语言中注册回调函数&#xff0c;函数需要使用静态函数&#xff0c;可使用bind和function来转换 案例一&#xff1a; #include <iostream> #include <functional> #include <string.h> #include "http_server.h" #include "ret_err_code.…...

批量将excel中字段为“八百”替换成“九百”

要批量将Excel中字段为"八百"的内容替换为"九百"&#xff0c;您可以使用Python的openpyxl库来实现。以下是一个示例代码演示如何读取Excel文件并进行替换操作&#xff1a; from openpyxl import load_workbook # 打开Excel文件 wb load_workbook(your_ex…...

关于docker-compose up -d在文件下无法运行的原因以及解决方法

一、确认文件下有docker-compose.yml文件 二、解决方法 检查 Docker 服务是否运行&#xff1a; 使用以下命令检查 Docker 服务是否正在运行&#xff1a; systemctl status docker 如果 Docker 未运行&#xff0c;可以使用以下命令启动它&#xff1a; systemctl start docker …...

MacType终极指南:彻底解决Windows字体模糊问题的免费神器

MacType终极指南&#xff1a;彻底解决Windows字体模糊问题的免费神器 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype 你是否厌倦了Windows系统上模糊不清的字体显示&#xff1f;长期面对锯齿边缘的…...

告别裸机延时!ESP32-C3/ESP32-S3用RMT外设精准驱动WS2812B灯带(Arduino/IDF双平台教程)

ESP32-C3/ESP32-S3 RMT外设驱动WS2812B灯带实战指南 当你的灯光项目从十几颗WS2812B升级到上百颗时&#xff0c;GPIO模拟驱动方式很快就会遇到瓶颈——闪烁、卡顿、颜色失真&#xff0c;这些问题的根源在于时序精度不足。ESP32系列芯片内置的RMT&#xff08;Remote Control&…...

零基础入门:labelCloud如何让你轻松完成3D点云标注工作

零基础入门&#xff1a;labelCloud如何让你轻松完成3D点云标注工作 【免费下载链接】labelCloud A lightweight tool for labeling 3D bounding boxes in point clouds. 项目地址: https://gitcode.com/gh_mirrors/la/labelCloud 你是否正在寻找一款简单易用的3D点云标注…...

从零构建卡牌游戏引擎:事件驱动架构与数据驱动设计实践

1. 项目概述&#xff1a;从零构建一个卡牌构筑游戏引擎最近在GitHub上看到一个挺有意思的项目&#xff0c;叫guladam/deck_builder_tutorial。光看名字&#xff0c;很多开发者&#xff0c;尤其是对游戏开发感兴趣的朋友&#xff0c;可能立刻就能会心一笑。没错&#xff0c;这正…...

【小白也能懂得操作】解决 OpenClaw 操作电脑受限问题详细指南(含安装包)

OpenClaw 没有电脑操作权限怎么办&#xff1f;完整解决方法 【新人点击链接直接下载openclaw安装包】 OpenClaw 在运行时需要对系统进行文件读写、键鼠模拟、窗口控制等操作&#xff0c;如果出现无法操作电脑、提示没有权限的问题&#xff0c;会直接影响自动化功能使用。本文…...

luceda ipkiss实战:利用MZI Lattice Filter实现可调谐波分复用器

1. MZI晶格滤波器基础与可调谐波分复用原理 马赫曾德干涉仪&#xff08;MZI&#xff09;晶格结构是集成光子学中最经典的多功能器件之一。我第一次接触这种结构时&#xff0c;就被它优雅的对称性和强大的可重构性所吸引。本质上&#xff0c;它通过级联多个MZI单元形成周期性结构…...

在Nodejs服务中集成多模型API实现智能客服场景

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Nodejs服务中集成多模型API实现智能客服场景 智能客服是当前许多在线服务提升用户体验的关键组件。对于Node.js后端开发者而言&a…...

ARM TLB机制与虚拟化加速:TLBIP指令与TLBID域深度解析

1. ARM TLB机制与虚拟化加速 在现代ARM架构中&#xff0c;TLB&#xff08;Translation Lookaside Buffer&#xff09;作为内存管理单元&#xff08;MMU&#xff09;的核心组件&#xff0c;其性能直接影响虚拟地址转换效率。随着虚拟化技术的普及&#xff0c;ARMv8/v9架构引入了…...

如何用淘金币自动化脚本每天节省20分钟?完整指南揭秘

如何用淘金币自动化脚本每天节省20分钟&#xff1f;完整指南揭秘 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 淘金币…...

STM32F407霸天虎开发板I2C驱动OLED避坑指南:从CubeMX配置到显示中文全流程

STM32F407霸天虎开发板I2C驱动OLED避坑指南&#xff1a;从CubeMX配置到显示中文全流程 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和轻薄特性成为许多项目的首选显示方案。本文将深入探讨如何基于STM32F407霸天虎开发板&#xff0c;通过HAL库和I2C接口高效驱动…...