云计算学习100天-第31天

Keepalived

概念

  • keepalived 是Linux下一个轻量级的高可用解决方案
  • 主要是通过虚拟路由冗余协议(VRRP)来实现高可用功能
  • Virtual Router Redundancy Protocol
  • 起初就是为了补充LVS功能而设计的,用于监控LVS集群内后端真实服务器状态
  • 后来加入了VRRP的功能,它出现的目的是为了解决静态路由出现的单点故障问题

功能

  • LVS规则管理
  • LVS集群真实服务器状态监测
  • 管理VIP
主机名IP地址角色
pubservereth0:192.168.88.240ansible主机
clienteth0:192.168.88.10客户端
lvs1eth0:192.168.88.5lvs1调度器
lvs2eth0:192.168.88.6lvs2调度器
web1eth0:192.168.88.100web服务器
web2eth0:192.168.88.200web服务器

使用Keepalived实现LVS高可用,配置测试高可用负载均衡集群

lvs1和lvs2节点安装LVS和Keepalived软件,在ansible主机上使用剧本安装


vim 11_inst_lvs_kp.yml
---
- name: install soft
hosts: lbs
tasks:
- name: install pkgs    #安装软件
yum:
name: ipvsadm,keepalived
state: present

ansible-playbook 11_inst_lvs_kp.yml

配置lvs1节点Keepalived软件

vim /etc/keepalived/keepalived.conf
global_defs {
...
router_id lvs1           #集群节点唯一标识
vrrp_iptables            #放行防火墙规则
...
vrrp_strict              #严格遵守VRRP规则
...
}

vrrp_instance VI_1 {
state MASTER            #状态
interface eth0          #网卡
virtual_router_id 51    #虚拟路由唯一标识符
priority 100            #优先级
advert_int 1            #心跳包间隔时间
authentication {        #认证方式
auth_type PASS      #密码认证
auth_pass 1111      #集群密码
}
virtual_ipaddress {     #定义VIP
192.168.88.15/24 dev eth0 label eth0:0  #VIP地址及绑定网卡和虚接口标签
}
}

virtual_server 192.168.88.15 80 {   #定义LVS虚拟服务器
delay_loop 6                    #健康检查延时6s开始
lb_algo wrr                     #调度算法
lb_kind DR                      #LVS工作模式
persistence_timeout 50          #50s内相同客户端发起请求由同一服务器处理
protocol TCP                    #虚拟服务器协议
real_server 192.168.88.100 80 { #定义真实服务器
weight 1                    #权重
TCP_CHECK {                 #健康检查方式
connect_timeout 3       #连接超时时间为3s
nb_get_retry 3          #连续3次访问失败则认为真实服务器故障
delay_before_retry 3    #健康检查包时间间隔
}
}

    real_server 192.168.88.200 80 {
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

# 启动服务测试
ipvsadm -Ln                          #启动服务前无LVS规则
systemctl enable --now keepalived    #加入开机自启并立即启动
ipvsadm -Ln                          #启动服务后有LVS规则
ip a s | grep 192.168                #VIP已绑定

client客户端同一服务器处理请求

for i in {1..6}
> do
>  curl http://192.168.88.15
> done

Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2

补充:lvs1节点注释持久连接时长

vim  /etc/keepalived/keepalived.conf     
...
#persistence_timeout 50
...
systemctl restart keepalived

#client客户端同一服务器处理请求
for i in {1..6};do curl http://192.168.88.15; done
Welcome to web2
Welcome to web1
Welcome to web2
Welcome to web2
Welcome to web1
Welcome to web2


配置lvs2节点Keepalived软件

#将lvs1节点的配置文件复制给lvs2节点 这里用rsync -av命令更安全
scp /etc/keepalived/keepalived.conf root@192.168.88.6:/etc/keepalived/
#进入到lvs2节点编辑配置文件
vim /etc/keepalived/keepalived.conf
#修改如下三行
router_id lvs2  #集群节点唯一标识符
state BACKUP    #状态
priority 50     #优先级

ipvsadm -Ln
systemctl start keepalived
ipvsadm -Ln

验证真实服务器健康检查

#web1节点停止nginx服务,模拟web1故障
systemctl stop nginx   
#lvs1节点和lvs2节点中查看到LVS规则中web1被擦除
ipvsadm -Ln              
TCP  192.168.88.15:80 wrr
-> 192.168.88.200:80            Route   2      0          0   
#web1节点启动nginx服务      
systemctl start nginx    #模拟web1修复
#lvs1节点和lvs2节点中的LVS规则中web1被添加回来
ipvsadm -Ln              
TCP  192.168.88.15:80 wrr
-> 192.168.88.100:80            Route   1      0          0         
-> 192.168.88.200:80            Route   2      0          0  

验证高可用负载均衡

#lvs1节点
ip a s | grep 88.15          #VIP绑定于lvs1
inet 192.168.88.15/24 scope global secondary eth0:0
systemctl stop keepalived    #模拟lvs1节点故障
ip a s | grep 88.15          #VIP释放
ipvsadm -Ln                  #LVS规则被清空

#lvs2节点
[root@lvs2 ~]# ip a s | grep 88.15   #VIP绑定于lvs2
inet 192.168.88.15/24 scope global secondary eth0:0
ipvsadm -Ln
TCP  192.168.88.15:80 wrr
-> 192.168.88.100:80            Route   1      0          0         
-> 192.168.88.200:80            Route   2      0          0         

client客户端查看,不受影响
for i in {1..6}
do
curl http://192.168.88.15
done                      

Welcome to web1
Welcome to web2
Welcome to web2
Welcome to web1
Welcome to web2
Welcome to web2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年视觉、先进成像和计算机技术论坛(VAICT 2025)

会议简介 作为人工智能大数据创新发展论坛的重要分论坛,2025年视觉、先进成像和计算机技术论坛聚焦人工智能感知世界的核心前沿,将于2025年9月18-20日在中国广州广东科学馆举行。 视觉与成像技术是智能系统理解环境的关键,计算机技术则…

MySQL 与 ClickHouse 深度对比:架构、性能与场景选择指南

🌟 引言:数据时代的引擎之争 在当今数据驱动的企业环境中,选择合适的数据库引擎成为架构设计的关键决策。想象这样一个场景:特斯拉的实时车况分析系统需要在毫秒级延迟下处理数百万辆汽车的传感器数据,而某电商平台的订…

闭包与内存泄漏:深度解析与应对策略

在 JavaScript 编程中,闭包是一个强大且常用的特性,但如果使用不当,可能会引发内存泄漏问题,影响程序性能甚至导致页面卡顿。本文将深入剖析闭包导致内存泄漏的原理,结合实例讲解,并给出切实可行的避免方法…

open webui源码分析12-Pipeline

Pipeline是 Open WebUI 的一项创新,它 为任何支持 OpenAI API 规范的 UI 客户端带来了模块化、可定制的工作流 —— 甚至更多功能!只需几行代码,你就能轻松扩展功能、集成自己的专有逻辑并创建动态工作流。 当你处理计算密集型任务&#xff0…

深入解析 Chromium Mojo IPC:跨进程通信原理与源码实战

在现代浏览器架构中,多进程设计已经成为标配。Chromium 浏览器作为典型的多进程浏览器,其浏览器进程(Browser Process)、渲染进程(Renderer Process)、GPU 进程、Utility 进程等之间的通信,依赖…

【自动化测试】测试分类概述-初步接触自动化测试

🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 测试分类 了解各种各样的测试方法分类,不是为了墨守成规按照既定方法区测试,而是已了解思维为核心,并了解一些专业名词 根…

【Python办公】快速比较Excel文件中任意两列数据的一致性

目录 专栏导读 项目背景 技术选型 核心技术栈 选型理由 功能特性 🎯 核心功能 🔧 辅助功能 架构设计 整体架构 设计模式 核心代码解析 1. 类初始化和UI设置 2. 文件选择和数据加载 3. 数据比较核心算法 4. 结果导出功能 界面设计详解 布局结构 UI组件选择 性能优化 1. 内存…

nginx的诞生背景、核心优势、与 Apache 的对比

下面用“3 个 1 分钟”帮你快速建立 Nginx 的整体印象: 1 分钟了解它为何诞生,1 分钟看懂它的 5 大核心优势,再花 1 分钟搞清和 Apache 的关键差异。诞生背景(2002-2004) • 作者:俄罗斯系统工程师 Igor Sy…

算法题打卡力扣第169题:多数元素(easy)

文章目录题目描述解法一:暴力解解法二 排序法解法三:Boyer-Moore 投票算法 (最优解)题目描述 解法一:暴力解 定义一个数组C用于存放nums数组中每个数出现的次数,然后再遍历C,判断C【i】是否大于⌊ n/2 ⌋,…

A6.0:PCB的设计流程

第一步:导入网表第二步:结构导入和板框定义1.导入结构文件:加载DXF格式的机械结构图(含板框、定位孔、限高区),确保元件布局符合物理约束。2.固定器件预放置:将接插件、按键、散热器等结构敏感元件锁定到指定位置,避免后期调整冲突…

深度学习在金融订单簿分析与短期市场预测中的应用

金融订单簿记录了市场上买卖双方的委托订单信息,包括价格、数量、订单类型等关键要素。其数据具有以下特点: 高频性:订单在极短时间内不断产生与变化,数据更新速度极快,每秒可能产生大量新订单。序列性:订单…

C++基础算法——贪心算法

思想&#xff1a;总是做出在当前看来是最好的选择 例题一、排队打水问题 n个人&#xff0c;r个水龙头&#xff0c;花费时间最少的安排&#xff1f;&#xff08;包含等待时间&#xff09; #include<iostream> #include <bits/stdc.h> using namespace std; int ma…

事务和锁(进阶)

事务和锁&#xff08;进阶&#xff09;一.回顾事务1.什么是事务2 为什么要使用事务3 怎么使用事务二.InnoDB和ACID模型三. 如何实现原子性四.如何实现持久性五.隔离性实现原理1.事务的隔离性2.事务的隔离级别3.锁1&#xff09;锁信息2&#xff09; 共享锁和独占锁-Shared and E…

【Mentor Xpedition】预习一下

这个软件不同于一般的PCB设计软件&#xff0c;采用独特的中心库形式&#xff0c;相比cadence的SCH和PCB更紧凑&#xff0c;或者说本就是一家人&#xff0c;不像orcad和allegro强行捆在一起。 基本symbol给原理用&#xff0c;cell给PCB用。

通过代码认识 CNN:用 PyTorch 实现卷积神经网络识别手写数字

目录 一、从代码看 CNN 的核心组件 二、准备工作&#xff1a;库导入与数据加载 三、核心&#xff1a;用代码实现 CNN 并理解各层作用 1.网络层结构 2.重点理解&#xff1a;卷积层参数与输出尺寸计算 四、训练 CNN 五、结果分析 卷积神经网络&#xff08;CNN&#xff09;…

基于SpringBoot和Thymeleaf开发的英语学习网站

角色&#xff1a; 管理员、用户 技术&#xff1a; SpringBoot、Thymeleaf、MySQL、MyBatis、jQuery、Bootstrap 核心功能&#xff1a; 这是一个基于SpringBoot的英语学习平台&#xff0c;旨在为用户提供英语学习资料&#xff08;如书籍、听力、单词&#xff09;的管理和学习功能…

把 AI 塞进「智能跳绳」——基于 MEMS 传感器的零样本卡路里估算器

标签&#xff1a;MEMS、卡路里估算、零样本、智能跳绳、TinyML、RISC-V、低功耗、边缘 AI ---- 1. 背景&#xff1a;为什么跳绳要「算卡路里」&#xff1f; 全球 1.5 亿人把跳绳当日常运动&#xff0c;却苦于&#xff1a; • 机械计数器误差大&#xff1b; • 手机 App 需联网…

矿用随钻测量现场应用中,最新的MEMS陀螺定向短节的优势是什么?

在当代矿业开发向深部复杂地层进军的过程中&#xff0c;随钻测量技术是控制钻井定向打孔质量和提升长距离钻探中靶精度的核心手段&#xff0c;煤矿井下定向钻孔、瓦斯抽放孔、探放水孔等关键工程面临着一系列特殊挑战&#xff1a;强磁干扰、剧烈振动、空间受限等恶劣条件。最新…

Spring Boot 使用 RestTemplate 调用 HTTPS 接口时报错:PKIX path building failed 解决方案

在使用 Spring Boot RestTemplate 调用 HTTPS 接口时&#xff0c;很多同学会遇到类似下面的报错&#xff1a;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certif…

【C语言入门级教学】sizeof和strlen的对⽐

1.sizeof和strlen的对⽐ 1.1 sizeof sizeof 计算变量所占内存空间⼤⼩的&#xff0c;单位是字节&#xff0c;如果操作数是类型的话&#xff0c;计算的是使⽤类型创建的变量所占内存空间的⼤⼩。 sizeof 只关注占⽤内存空间的⼤⼩&#xff0c;不在乎内存中存放什么数据。 ⽐如&a…