Linux-Keepalived(VRRP协议)高可用集群搭建


Linux-Keepalived(VRRP协议)高可用集群搭建

  • 一、VRRP简介
    • 1.1 什么是VRRP?
    • 1.2 keepalived是什么?
    • 1.3 keepalived工作原理
  • 二、实操配置过程
    • 2.1 试验模型
    • 2.2. Keepalived监控和维护VRRP集群的步骤
      • 2.2.1 安装keepalived
      • 2.2.2 配置`keepalived.conf`文件
        • 2.2.2.1 master配置
        • 2.2.2.2 backup配置
      • 2.2.3 启动keepalived
  • 三、keepalived配置文件说明
    • 3.1 global_defs 全局配置
    • 3.2 vrrp_script区域
    • 3.3 vrrp_instance区域

参考链接:Keepalived高可用集群

一、VRRP简介

1.1 什么是VRRP?

  VRRP(Virtual Router Redundancy Protocol)是虚拟路由器冗余协议,用于实现网络设备的冗余备份和负载均衡,以提高网络的可靠性和稳定性。
  在VRRP中,一组路由器形成一个虚拟路由器,虚拟路由器的IP地址是由虚拟路由器中的一个路由器的物理接口IP地址和虚拟IP地址组成的。当虚拟路由器的物理接口IP地址失效时,其他路由器将接管该虚拟路由器的IP地址,并继续提供路由服务。
  VRRP的主要目的是在一个网络中提供冗余的路由。当一个三层网络设备或服务器出现故障时,VRRP可以确保网络仍能正常工作。VRRP通过在这些设备之间使用IP组播或单播通信来实现冗余。它可以确保在网络中有多个物理节点时,且在某些节点发生故障时仍能保持服务。
  主要优点是提高了网络的可靠性,因为当主路由器出现故障时,备份路由器可以迅速接管网络服务,避免了网络中断。此外,VRRP还可以实现负载均衡,将数据流量分配到多个路由器上,提高了网络的性能。
  需要注意的是,VRRP需要在路由器上配置相应的参数和规则,以确保其正常工作。同时,在配置VRRP时,需要考虑网络拓扑、设备性能等因素,以确保网络的稳定性和可靠性。

回到目录

1.2 keepalived是什么?

  Keepalivedkeepalived是集群管理中保证集群高可用的一个服务软件,它的作用是检测web服务器的状态。它是Linux内核中的一个组件,用于实现虚拟路由冗余协议(VRRP)
  Keepalived负责监控和维护一个VRRP集群,以确保所有VRRP实例都在线并能相互通信。如果有一台服务器死机,或工作出现故障,keepalived将检测到,并将有故障的服务器从系统中剔除,当web服务器工作正常后,自动将web服务器加入到服务器集群中。解决了静态路由的单点故障问题。

回到目录

1.3 keepalived工作原理

  N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip,master不断向backup发送心跳信息,告诉backup自己还活着,当backup收不到心跳的时候就认为master已经宕机,就需要根据VRRP的优先级来选举一个backup当master,从而保证高可用。
keepalived主要有三个模块:

  • core模块:为keepalived的核心,负责进程的启动,维护,以及全局配置文件的加载和解析。
  • check模块:负责健康检查,包括常见的各种检查方式。
  • vrrp模块:是实现VRRP协议的。

回到目录

二、实操配置过程

2.1 试验模型

1
说明:通过Keepalived监控和维护一个VRRP集群,包含虚拟机1(11.11.1.111)和虚拟机2(11.11.1.113)这两台独立主机,设置其虚拟化IP地址为11.11.1.117,其中虚拟机1(11.11.1.111)为master实例,如果master实例出现故障,将由另一个backup健康实例来接管故障实例的工作。

回到目录

2.2. Keepalived监控和维护VRRP集群的步骤

2.2.1 安装keepalived

   master和backup均需要安装keepalived,执行命令:

# 如果服务器操作系统是debian系统,执行下面命令
apt install keepalived -y
# 如果服务器操作系统是其他linux系统,执行下面命令
yum -y install keepalived 

1

2.2.2 配置keepalived.conf文件

   进入系统的/etc/keepalived目录下修改keepalived.conf文件:更多配置文件说明,点击跳转
配置详解:

! Configuration File for keepalived //标记
global_defs { //global配置模块
	router_id director1 //master为director1,辅助backup修改为director2 
}
vrrp_instance VI_1 {
	state BACKUP //禁止抢占
	nopreempt
	interface ens33 //VIP绑定的网络接口
	virtual_router_id 80 //master和backup一致
	priority 100 //优先级,可以决定哪个是master,辅助按顺序递减改为50
	advert_int 1
	authentication {
		auth_type PASS //关于安全的配置,只有type和pass相同,才在一个组里 ​ 
		auth_pass 1111 ​
	 }
		virtual_ipaddress{ //指虚拟ip
			11.11.1.117
		}
	}

这里的interface(IP版本的网络接口),可以通过命令:ip addr show来查看,该命令将显示系统中所有网络接口的详细信息,包括物理接口的IP地址、MAC地址等。物理接口通常以类似于 eth0、wlan0、ens 等名称标识。
1

2.2.2.1 master配置

master配置内容:vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   router_id director1
}
vrrp_instance VI_1 {
    state MASTER
    interface ens192
    virtual_router_id 80
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        11.11.1.117
    }
}

1

2.2.2.2 backup配置

backup配置内容:vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   router_id director1
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens192
    virtual_router_id 80
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        11.11.1.117
    }
}

2

回到目录

2.2.3 启动keepalived

  配置完毕后,检查haproxy的负载均衡是否启动正常,一切准备就绪后,启动keepalived

  • master机(11.11.1.111):
    1. 启动keepalived,执行命令:systemctl start keepalived
    2. 查看keepalived状态,执行命令:systemctl status keepalived
      2
    3. 在master启动keepalived后,需要查看ip,执行命令:ip a
      在ens192接口会出现111.11.1.117的虚拟IP(在backup并没有新增的ip出现)
      3
  • backup机(11.11.1.113):
    1. 启动keepalived,执行命令:systemctl start keepalived
    2. 查看keepalived状态,执行命令:systemctl status keepalived
    3. 在master启动keepalived后,需要查看ip,执行命令:ip a
      在ens192接口并没有新增的ip出现(master机会出现111.11.1.117的虚拟IP)
      4
  • master服务器宕机测试
    1. 停止master上的keepalived服务,执行命令:systemctl stop keepalived
    2. 然后查看ip(执行命令:ip a),发现虚拟ip不存在了。
      1
    3. 此时查看backup机的ip,执行命令:ip a,此时可以发现虚拟ip:11.11.1.117
      1

回到目录

三、keepalived配置文件说明

keepalived配置文件:keepalived.conf。里面主要包括以下几个配置区域,分别是:

  • global_defs 全局配置
  • static_ipaddress 静态路由配置
  • vrrp_script 检测脚本
  • vrrp_instance 定义高可用相关的配置
  • virtual_server 定义配置服务器

3.1 global_defs 全局配置

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
  • notification_email:故障发生时给谁发邮件通知
  • notification_email_from:通知邮件从哪个地址发出
  • smtp_server:通知邮件的smtp地址
  • smtp_connect_timeout:连接smtp服务器的超时时间
  • enable_traps:开启SNMP陷阱
  • router_id:标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到

回到目录

3.2 vrrp_script区域

  用来做健康检查的,当检查失败时会将vrrp_instance的priority减少相应的值。

vrrp_script check_haproxy {
        script "/etc/keepalived/check_haproxy_status.sh"
        interval 5
        weight  -20
}
  • script:自己写的的监测脚本
  • interval 5:每5s监测一次
  • weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点

回到目录

3.3 vrrp_instance区域

  定义当前服务器的内容​

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 {
        192.168.200.16
    }
     track_script {
        check_haproxy
        }
}
  • state:只有MASTER和BACKUP。MASTER为工作状态,BACKUP是备用状态。
  • interface:网卡接口,可通过ip addr查看自己的网卡接口。
  • virtual_router_id :虚拟路由标志,同组的virtual_router_id 应保持一致,它决定多播的mac地址
  • priority:设置本节点的优先级,优先级高的为master
  • advert_int:MASTER和BACKUP同步检查的时间间隔
  • virtual_ipaddress:虚拟ip

回到目录

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

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

相关文章

使用OpenCV DNN模块进行人脸检测

内容的一部分来源于贾志刚的《opencv4应用开发、入门、进阶与工程化实践》。这本书我大概看了一下,也就后面几章比较感兴趣,但是内容很少,并没有想像的那种充实。不过学习还是要学习的。 在实际工程项目中,并不是说我们将神经网络…

Win10 使用 Nmap 扫描 Andorid 设备开放端口

Nmap Nmap 是 网络探测工具和安全/端口扫描器。 官网链接 Nmap参考指南(Man Page) 官网下载地址 Downloading Nmap Nmap 下载安装 到官网下载对应操作系统的安装包, 默认配置,一直下一步安装即可。安装过程中备份下安装路径,后续用到。…

【优化】XXLJOB修改为使用虚拟线程

【优化】XXLJOB修改为使用虚拟线程 新建这几个目录 类&#xff0c; 去找项目对应的xxljob的源码 主要是将 new Thread 改为 虚拟线程 Thread.ofVirtual().name("VT").unstarted 以下代码是 xxljob 2.3.0版本 举一反三 去修改对应版本的代码 <!-- 定…

C语言数据结构-----常用七种排序介绍、分类、实现及性能比较

前言 ①排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 ②稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#…

Spring中用到的设计模式

一、工厂模式 BeanFactory 1、简单工厂模型&#xff0c;是指由一个工厂对象决定创建哪一种产品类的实例&#xff0c;工厂类负责创建的对象较少&#xff0c;客户端只需要传入工厂类的参数&#xff0c;对于如何创建对象的逻辑不需要关心 优点&#xff1a; 只需传入一个正确的参数…

第四部分 一阶逻辑基本概念

目录 主要内容 一阶逻辑命题符号化 一阶逻辑公式及其解释 个体词——所研究对象中可以独立存在的具体或抽象的客体 谓词——表示个体词性质或相互之间关系的词 量词——表示数量的词 例1 用0元谓词将命题符号化 例2 在一阶逻辑中将下面命题符号化 例如 例如 例3 给定解释 I 如下…

京东JDAPI:电商行业的得力助手

一、引言 在当今电商行业中&#xff0c;数据的获取与利用显得尤为重要。作为中国领先的电商平台&#xff0c;京东提供了丰富的API接口&#xff0c;其中JD商品详情API是关键之一&#xff0c;它允许第三方开发者获取京东平台上的商品详情信息。本文将深入探讨京东JD商品详情API在…

欧洲版OpenAI疑似将在24年发布并开源GPT-4级别模型!

大家好&#xff0c;我是二狗。 今天在推特上看到一条振奋人心的消息&#xff1a; “ 欧洲版OpenAI、法国初创公司 Mistral 首席执行官 Arthur Mensch 在法国国家广播电台宣布&#xff0c;Mistral 将在 2024 年发布开源 GPT-4 级别模型。” 这位老哥接着表示甚至可能是免费的&a…

前端传输formDate格式的数据,后端不能用@RequestBody接收

写了个接口&#xff0c;跟前端对接&#xff0c;前端说怎么一直415的报错 我寻思不对啊&#xff0c;我swagger都请求成功了&#xff0c;后来发现前端一直是以formdata格式提交的数据&#xff0c;这样我其实是可以不加RequestBody的&#xff1b; 知识点&#xff1a; RequestBody…

TrustZone之与非安全虚拟化交互

到目前为止&#xff0c;我们在示例中忽略了非安全状态中可能存在的虚拟化程序。当存在虚拟化程序时&#xff0c;虚拟机与安全状态之间的许多通信将通过虚拟化程序进行。 例如&#xff0c;在虚拟化环境中&#xff0c;SMC用于访问固件功能和可信服务。固件功能包括诸如电源管理之…

将遗留系统分解为微服务:第 2 部分

在当今不断发展的技术环境中&#xff0c;从整体架构向微服务的转变对于许多企业来说都是一项战略举措。这在报销计算系统领域尤其重要。正如我在上一篇文章第 1 部分应用 Strangler 模式将遗留系统分解为微服务-CSDN博客中提到的&#xff0c;让我们探讨如何有效管理这种转变。 …

前端学习——指令

vue作为前端框架&#xff0c;为了简化或实现一些特定功能&#xff0c;提供了很多指令&#xff0c;那什么是指令呢&#xff1f; 所谓的指令就是能够完成特定功能的一些vue语法&#xff0c;比如属性绑定指令v-bind&#xff0c;事件绑定指令v-on&#xff0c;循环指令v-for等。在v…

【Amazon 实验②】使用Amazon WAF做基础 Web Service 防护之自定义规则

文章目录 1. 自定义规则1.1 介绍 2. 实验步骤2.1 测试2.2 输出 上一篇章介绍了使用Amazon WAF做基础 Web Service 防护中的Web ACLs 配置 & AWS 托管规则的介绍和演示操作 【Amazon 实验①】使用Amazon WAF做基础 Web Service 防护&#xff0c;本篇章将继续介绍关于自定义…

2009-2022年31省细分产品出口数据/按hs码分的22类细分产品的出口数据

2009-2022年31省细分产品出口数据/按hs码分的22类细分产品的出口数据 1、时间&#xff1a;2009-2022年 2、指标&#xff1a;时间、流向名称、商品编码、商品名称、伙伴名称、主题编码、方式名称、金额&#xff08;美元&#xff09; 3、来源&#xff1a;海关贸易统计数据/海关…

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…

[SQL]实验 视图和索引的应用

实验目的&#xff1a; [实验目的和要求] 1、掌握视图的创建、修改和重命名的方法 2、掌握视图中数据的操作 3、了解索引的作用 4、掌握索引的创建方法 实验步骤&#xff1a; 1、在销售管理数据库中&#xff0c;创建一个女职工视图&#xff0c;包括员工的编号、姓名、性别、雇佣…

多标签分类中常用指标和可视化例子

多标签分类中常用指标 1. 准确率&#xff08;Accuracy&#xff09; 准确率计算的是正确预测的标签比例。对于多标签分类&#xff0c;这通常是一个较为严格的指标&#xff0c;因为要求每个实例的所有标签都预测正确。 Accuracy 正确预测的标签数 总标签数 \text{Accuracy} \…

Qt前端技术:5.QSS

这个是表示QFrame中的pushButton中的子类和它子类的子类都将背景变为red 写成大于的时候表示只有直接的子类对象才会变 这个图中的QGroupBox和QPushButton都是QFrame的直接的子类 这个中的QGroupBox是QFrame的直接的子类但是QPushButton 是QGroupBox的子类&#xff0c;QPushB…

3. 结构型模式 - 组合模式

亦称&#xff1a; 对象树、Object Tree、Composite 意图 组合模式是一种结构型设计模式&#xff0c; 你可以使用它将对象组合成树状结构&#xff0c; 并且能像使用独立对象一样使用它们 问题 如果应用的核心模型能用树状结构表示&#xff0c; 在应用中使用组合模式才有价值。 …

基于JavaWeb的个人健康信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本个人健康信息管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…