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 //禁止抢占nopreemptinterface ens33 //VIP绑定的网络接口virtual_router_id 80 //master和backup一致priority 100 //优先级,可以决定哪个是master,辅助按顺序递减改为50advert_int 1authentication {auth_type PASS //关于安全的配置,只有type和pass相同,才在一个组里 ​ auth_pass 1111 ​}virtual_ipaddress{ //指虚拟ip11.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 MASTERinterface ens192virtual_router_id 80priority 100advert_int 1authentication {auth_type PASSauth_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 BACKUPinterface ens192virtual_router_id 80priority 50advert_int 1authentication {auth_type PASSauth_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.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_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 5weight  -20
}
  • script:自己写的的监测脚本
  • interval 5:每5s监测一次
  • weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点

回到目录

3.3 vrrp_instance区域

  定义当前服务器的内容​

vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_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

回到目录

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

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

相关文章

sql_lab之sqli中的head头注入,less18

报错注入中的head注入(less-18) 1.输入用户名和密码123 123显示登录错误 2.输入用户名和密码123’ 123显示登录错误 则证明不是普通报错注入,因为有用户名和密码框,如果不是普通报错注入则尝试head注入 3.用burp进行爆破&#x…

【已解决】在使用frp内网穿透访问VUE项目提示:Invalid Host/Origin header 解决方案

项目配置 在使用frp作为内网穿透的时候,配置了多端口穿透(也是第一次配置frp多端口),端口配置如下: 8079:vue项目的管理系统 8080:vue项目的前台系统 8082:普通的web项目 更高frp相关问题 &#x1f4…

4.3 C++对象模型和this指针

4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include <iostream>class Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量…

数据预处理:多重共线性_检测和解决办法

文章目录 1.多重共线性简介&#xff08;Collinearity and Multicollinearity&#xff09;1.1 多重共线性的后果1.2 处理多重共线性问题的方法 2. 设置2.1 导入库2.2 数据集特征波士顿房价BMI 数据集 2.3 导入数据 3. 相关矩阵3.1 聚类图 4. 方差膨胀因子4.1 两种多重共线性4.2 …

外卖托管运营专家邦火策划怎么样,为您的餐厅带来了什么不同?

在当今激烈竞争的餐饮市场&#xff0c;外卖托管运营正逐渐成为许多餐厅提升业绩的有效手段。邦火策划以其专业的服务和独特的策略&#xff0c;成为外卖托管运营领域的专家。让我们一同探究&#xff0c;选择邦火策划为您的餐厅带来了怎样的不同。 在邦火策划的引领下&#xff0…

【UML】第10篇 类图(属性、操作和接口)(2/3)

目录 3.3 类的属性&#xff08;Attribute&#xff09; 3.3.1 可见性&#xff08;Visibility&#xff09; 3.3.2 属性的名称 3.3.3 数据类型 3.3.4 初始值 3.3.5 属性字符串 3.4 类的操作&#xff08;Operations&#xff09; 3.4.1 参数表 3.4.2 返回类型 3.5 类的职责…

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

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

data数据响应式

data数据响应式 所有在实例上挂载的属性&#xff0c;都可以在视图中直接使用 data中的数据&#xff0c;是经过“数据劫持”的&#xff0c;是“响应式数据” 响应式&#xff1a;修改数据&#xff0c;视图会自动更新 MV原理&#xff1a;其中一条线的原理&#xff0c;data响应式的…

Nessus详细安装-windows (保姆级教程)

Nessus描述 Nessus 是一款广泛使用的网络漏洞扫描工具。它由 Tenable Network Security 公司开发&#xff0c;旨在帮助组织评估其计算机系统和网络的安全性。 Nessus 可以执行自动化的漏洞扫描&#xff0c;通过扫描目标系统、识别和评估可能存在的安全漏洞和弱点。它可以检测…

DRF从入门到精通三(反序列化数据校验源码分析、断言Assert、DRF之请求、响应)

文章目录 一、反序列化数据校验源码分析二、断言Assert三、DRF之请求、响应Request类和Response类请求中的Request 能够解析前端传入的编码格式响应中的Response能够响应的编码格式 一、反序列化数据校验源码分析 反序列化数据校验&#xff0c;校验顺序为&#xff1a;先校验字段…

Go后端开发 -- Golang的语言特性

Go后端开发 – Golang的语言特性 文章目录 Go后端开发 -- Golang的语言特性一、Golang的优势1.部署极其简单&#xff1a;2.静态语言3.语言层面的并发4.强大的标准库5.简单易学6.运行效率对比 二、Golang的适用领域1.应用领域2.明星产品 三、Golang的不足 一、Golang的优势 1.部…

共享购:消费前沿的领导者

在当今这个信息化、互联网高速发展的时代&#xff0c;商业模式也在不断地创新和变革。共享购模式作为一种新型的商业模式&#xff0c;正逐渐受到广泛的关注和追捧。本文将深入探讨共享购模式的核心理念、优势以及如何应用在实际商业场景中&#xff0c;为读者揭示这一模式的巨大…

计算机组成原理综合5

A 按照题意&#xff0c;程序P执行的时钟周期数为1000080%11000020%1028000&#xff0c;程序P的平均CPI为28000/100002.8&#xff0c;计算机主频为1GHz&#xff0c;CPU执行时间为28000/(1G/s)28μs。 B A 符号位为1 首先将0.4375转化为二进制&#xff0c;0.250.1250.06250.43…

nodejs+vue+ElementUi资源互助共享平台的设计

后台&#xff1a;管理员功能有个人中心&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;咨询师管理&#xff0c;萌宝信息管理&#xff0c;幼儿知识管理&#xff0c;保姆推荐管理&#xff0c;音频资源管理&#xff0c;二手商品管理&#xff0c;商品分类管理&#xff0c;资…

推荐给前端开发的 5 款 Chrome 扩展

工欲善其事&#xff0c;必先利其器。Chrome 可能是前端开发中使用最多的浏览器。在日常开发中&#xff0c;下列几款 Chrome 扩展也许能让你的开发工作事半功倍 &#x1f680; Vue.js devtools ⚙️ vue 官方专为 vue 应用开发的调试工具。 通过使用它&#xff0c;你可以快速查看…

力扣单调栈算法专题训练

目录 1 专题说明2 训练 1 专题说明 本博客用来计算力扣上的单调栈题目、解题思路和代码。 单调栈题目记录&#xff1a; 2232866美丽塔II 2 训练 题目1&#xff1a;2866美丽塔II。 解题思路&#xff1a;先计算出prefix[i]&#xff0c;表示0~i满足递增情况下&#xff0c;0~i…

NC65 查询单据所处的流程状态以及流程平台客户端工具类

1、查询单据所处的流程状态 nc.bs.wfengine.engine.EngineService的queryFlowStatus()方法 /*** 查询单据所处的流程状态* * param billId* param billType* param result* return* throws DbException*/public int queryFlowStatus(String billId, String billType, int flo…

【UML】第8篇 用例图(3/3)

目录 一、用例的关系 1.1 泛化&#xff08;Generalization&#xff09;关系 1.2 包含&#xff08;include&#xff09;关系 1.3 扩展关系 二、用例表示例 不是非要把电影改成连续剧&#xff0c;给大家播&#xff0c;确实是时间和精力有限。 用例图&#xff0c;虽然简单&…

荣誉 | 第七在线(7thonline)荣获STIF2023年度数智化创新典范奖

12月15日&#xff0c;STIF2023 第四届国际科创节暨 DSC2023 国际数字服务大会&#xff08;数服会&#xff09;在北京隆重举行。 在本届科创节暨数服会活动评选中&#xff0c;经企业申报、评委会审议&#xff0c;第七在线&#xff08;7thonline&#xff09;AI智能零售商品计划库…

什么是集成测试?它和系统测试的区别是什么? 操作方法来了

01 什么是集成测试&#xff1f; 集成测试是软件测试的一种方法&#xff0c;用于测试不同的软件模块之间的交互和协作是否正常。集成测试的主要目的是确保不同的软件模块能够无缝协作&#xff0c;形成一个完整的软件系统&#xff0c;并且能够满足系统的需求和规格。 在集成测试…