LVS+keepalived 群集

news/2024/4/20 13:35:17/文章来源:https://blog.csdn.net/Yuzhang2046/article/details/130370004

Keepalived及其工作原理

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

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

Keepalived体系主要模块及其作用

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

●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
●vrrp模块:是来实现VRRP协议的。
●check模块:负责健康检查,常见的方式有端口检查及URL检查

部署LVS+Keepalived 高可用群集

主DR 服务器:192.168.126.22
备DR 服务器:192.168.126.23
Web 服务器1:192.168.126.24
Web 服务器2:192.168.126.25
vip:192.168.126.88
客户端:192.168.126.21

实验原理图

实验步骤

LVS 部署

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

systemctl stop firewalld.service
setenforce 0#安装keepalived
[root@zy2 ~]# yum -y install keepalived  ipvsadm   #安装keepalived 和ipvsadm[root@zy2 ~]# modprobe ip_vs    #加载ip_vs模块
[root@zy2 ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn[root@zy2 ~]# cd /etc/keepalived/
[root@zy2 keepalived]# ls
keepalived.conf
[root@zy2 keepalived]# cp keepalived.conf keepalived.conf.bak #备份[root@zy2 keepalived]# vim keepalived.conf   #修改配置文件
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1    #指向本地smtp_connect_timeout 30router_id LVS_01       #指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02   下面的vrrp_strict等四行内容删除
}vrrp_instance VI_1 {state MASTER        #设为主   zy3设为BACKUPinterface ens33           #物理网卡ens33virtual_router_id 51      #虚拟路由id 要和BACKUP一致priority 100              #优先级100   BACKUP设为90小于100advert_int 1authentication {auth_type PASSauth_pass 1111       #密码可以默认}virtual_ipaddress {192.168.126.88         #VIP}
}
virtual_server 192.168.126.88 80 {   #设置VIP的策略delay_loop 6lb_algo rr              #算法轮询lb_kind DR               #调度器DR模式persistence_timeout 0    #不进行连接超时等待protocol TCPreal_server 192.168.126.24 80 {      #添加节点服务器1的RIPweight 1TCP_CHECK {                       #添加健康检查方式connect_port 80              #添加检查的目标端口connect_timeout 3             #添加连接超时(秒)nb_get_retry 3                #添加重试次数delay_before_retry 3          #添加重试间隔}}real_server 192.168.126.25 80 {       #添加节点服务器2的RIPweight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}                                         #下面的内容不用可以删除
[root@zy2 keepalived]# systemctl start keepalived
[root@zy2 keepalived]# ip addr   #查看虚拟网卡vip

 

 而BACKUP的虚拟网卡VIP则没有起

启动 ipvsadm 服务

[root@zy2 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@zy2 ~]# systemctl start ipvsadm   #启动 ipvsadm 服务
[root@zy2 ~]# 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.126.88:80 rr-> 192.168.126.24:80            Route   1      0          0         -> 192.168.126.25:80            Route   1      0          0

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

[root@zy2 ~]# vim /etc/sysctl.conf
#末行添加  关闭转发和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 = 0[root@zy2 ~]# sysctl -p    #加载配置

2.配置节点服务器(两台节点服务器配置一样)

[root@zy4 ~]# systemctl stop firewalld
[root@zy4 ~]# setenforce 0
[root@zy4 ~]# yum -y install httpd
[root@zy4 ~]# systemctl start httpd[root@zy4 ~]# echo 'this is test1 web!' > /var/www/html/index.html
#节点服务器2中写入test2以作区分[root@zy4 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0  #配置lo接口
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.126.88
NETMASK=255.255.255.255[root@zy4 network-scripts]# ifup lo:0
[root@zy4 network-scripts]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 192.168.126.88  netmask 255.255.255.255loop  txqueuelen 1  (Local Loopback)[root@zy4 network-scripts]# route add -host 192.168.80.188 dev lo:0

修改内核参数

[root@zy4 network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1   
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2[root@zy4 network-scripts]# sysctl -p

测试:客户端去访问VIP192.168.126.88

 此时已实现负载均衡,然后关闭主调度器的keepalived,查看是否还是能正常访问

客户端再次访问 

总结:

Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动IP?

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

keepalived的抢占与非抢占模式

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

keepalived的脑裂现象

主备调度器都出现VIP(因为主备服务器之间的网络中断导致备服务器接收不到主服务器发送的vrrp通告报文。)

解决方案:

  1. 主备服务器之间使用双链路通信
  2. 通过脚本来实时监控主备的网络状态,然后再根据脚本逻辑采取措施(关掉主服务器的keepalived服务)
  3. 通过第三方监控系统来实时监控主备服务器及网络状态,然后再根据情况采取措施(关掉主服务器的keepalived服务)

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

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

相关文章

tongweb

13051667606 东方通产品介绍 产品兼容 硬件要求 安装 安装目录结构 启动tongweb 停止tongweb bin下常用命令 企业版管理控制台 文档&#xff1a;产品简介及安装指南 绿色版直接解压安装 tar -zxvf …tar.gz Tongweb的配置文件 在conf的tongweb.xml 修改端口等信息 通过页面…

宁波博视眼科俞存院长:晒太阳会晒出白内障?是真的吗?

春意渐浓&#xff0c;人们纷纷踏出家门&#xff0c;享受暖暖的阳光。众所周知&#xff0c;适当晒太阳可以促进人体合成维生素D&#xff0c;对身体有一定的好处。 但你知道吗?太阳光中的紫外线可能会导致部分眼病的出现&#xff0c;例如&#xff1a;白内障。 晒太阳怎么会晒出白…

028:Mapbox GL 绘制线段,实时测量长度距离值

第028个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制线段,编辑线段,实时显示长度值。这里使用turf来计算长度值,采用默认的单位千米。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代…

使用WireShark抓包分析TCP_IP协议

文章目录 前言一、TCP/IP协议1.1 OSI分层1.2 TCP/IP 分层 二、抓包2.1 Socket代码2.2 过滤包 三、分析3.1 TCP首部3.2 实战分析3.3 三次握手3.4 四次挥手 参考 前言 TCP/IP 协议 是一组用于互联网通信的协议。它由两个主要协议组成&#xff1a;传输控制协议&#xff08;TCP&am…

RabbitMq-接收消息+redis消费者重复接收

在接触RammitMQ时&#xff0c;好多文章都说在配置中设置属性 # rabbitmq 配置 rabbitmq:host: xxx.xxx.xxx.xxxport: xxxxusername: xxxpassword: xxxxxx## 生产端配置# 开启发布确认,就是confirm模式. 消费端ack应答后,才将消息从队列中删除#确认消息已发送到队列(Queue)pub…

排查和解决CentOS系统上Nacos服务启动报错“java.net.UnknownHostException: jmenv.tbsite.net“问题

背景 环境是CentOS7操作系统&#xff0c;nacos服务宕掉了&#xff0c;启动服务的时候报错。 Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method ‘di…

大数据管理中心规划设计方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 统一汇聚 推动业务数据协同5 价值提炼 支撑精准服务与科学管理6 实时感知 辅助城市治理高效运行7 大数据资源平台目标体系规划11 建设目标与思路12 使能高效协同&#xff0…

Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130381428 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

【数据结构初阶】第七节.树和二叉树的基本操作

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;Java初阶数据结构 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目…

港科夜闻|香港科技大学(广州)与中国电信广东公司签署战略合作协议

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科技大学(广州)与中国电信广东公司签署战略合作协议。根据协议&#xff0c;双方将围绕各自科技创新及发展需要&#xff0c;整合双方的优质资源和优势能力&#xff0c;务实开展多方位的战略合作。本次合作&#xff0c…

6.微服务项目实战---Sleuth--链路追踪

6.1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成 系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上…

【算法与数据结构】6 学会对算法进行性能测试

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 算法性能测试 一、前情回顾二、算法性能测试1.生成测试用例2.使用测…

多种内网穿透的实现方案

1. 内网穿透的应用场景 1.1. 开发调试 比如企业微信、钉钉等开发&#xff0c;需要一个回调地址&#xff0c;开发的时候&#xff0c;希望回调到开发的电脑上&#xff0c;打断点进行调试&#xff0c;这就需要穿透到内网的开发机器。 1.2. 演示测试 有需要演示或测试的系统&am…

SLAM论文速递:SLAM—— MID-Fusion:基于八叉树的对象级多实例动态SLAM—4.26(1)

论文信息 题目&#xff1a; MID-Fusion:Octree-based Object-Level Multi-Instance Dynamic SLAMMID-Fusion:基于八叉树的对象级多实例动态SLAM 论文地址&#xff1a; https://ieeexplore.ieee.org/abstract/document/8794371发表期刊&#xff1a; 2019 International Conf…

凌恩生物文献分享|一株细菌完成图也能发一区10分+!

期刊&#xff1a;Science of the Total Environment 影响因子&#xff1a;10.753 发表时间&#xff1a;2022 样本类型&#xff1a;Bosea sp. Ads-6菌株 客户单位&#xff1a;中国科学院微生物研究所 一、研究背景 环境中抗生素残留和耐药性的增加引发了许多…

亚马逊美国站纽扣电池标准

近日&#xff0c;亚马逊美国站公布要求卖家需遵守扭电池和硬币电池的新包装和警示标签规定公告。 在亚马逊销售单独的纽扣电池和硬币电池&#xff0c;则从2023年3月2日开始&#xff0c;您需要证明您的符合儿童安全包装和警告标签要求。 适用产品有;单独的纽扣电池或硬币电池&a…

Android SeekBar控制视频播放进度(二)——seekTo()不准确

Android SeekBar控制视频播放进度二——seekTo不准确 简介seekTo()视频帧 和 视频关键帧解决办法方法一方法二 简介 上一篇文章中&#xff0c;我们介绍了使用SeekBar控制视频播放&#xff0c;使用过程中发现&#xff0c;对于一些视频&#xff0c;我们拖动SeekBar进度条调节播放…

谈谈如何用开源网关进行 API 管理

需求痛点 1.企业不清楚到底有多少个API&#xff0c;无法形成API资产管理等问题。 2.API在不同集群的生命周期问题。 3.API运行状态监控和告警问题。 4.API请求限流、流量控制以及安全等问题。 功能介绍 Apinto的API管理提供API生命周期控制&#xff1a;可管理所有API&…

【DRF配置管理】如何在视图类使用get_objects()

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 DRF应用和管理 【DRF配置管理】Django使用DRF框架 【DRF配置管理】如何在视图类配置参数(一) 【DRF配置管理】如何在视图类配置参数(二) 【DRF配置管理…

跨数据中心下的 Kafka 高可用架构分析

导语 本文介绍了 Kafka 跨数据中心的两种部署方式&#xff0c;简要分析两种方式下的不同架构以及优缺点&#xff0c;对这些架构可能碰到的问题也提供了一些解决思路&#xff1b;同时也说明了 Kafka 跨数据中心部署的社区解决方案和商业化解决方案。 背景 Kafka 作为世界上最…