keepalived双机热备 (四十五)

news2025/1/19 17:05:14

一、概述

      Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。
    原理
        在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但
是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
    解决单点故障问题

二、安装

  yum install -y keepalived


    配置文件
        /etc/keepalived/keepalived.conf
    配置项

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地址。
    smtp_connect_timeout 30                        ##连接smtp服务器的超时时间
    router_id LVS_DEVEL          #标识这台机器ID,默认情况下是主机名,可以配置成主机名
    vrrp_skip_check_adv_addr     #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址
    vrrp_strict                  #严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址
    vrrp_garp_interval 0         #ARP报文发送延迟
    vrrp_gna_interval 0          #消息发送延迟
    #vrrp_mcast_group4 224.0.0.18 #指定组播IP地址,默认值:224.0.0.18 范围:224.0.0.0到239.255.255.255
    #vrrp_iptables                #避免生成iptables input链 规则,sip any 拒绝 dip any
}

        router_id 1
            定义节点id
        state MASTER|BACKUP
            定义节点主从状态
        interface ens33
            配置监听的网卡
        virtual_router_id 51
            同一个热备组要保持一致
        priority 100
            节点优先级
        advert_int 1
            多少秒进行一次心跳检测
        authentication {
        auth_type PASS
        auth_pass 1111
    }
            keepalived节点的认证方式,
同一个keepalived双机热备组一定要保持一致
        virtual_ipaddress 
            配置VIP,即漂移地址
        vrrp

vrrp_script chk_nginx_server {
       script "/etc/keepalived/chk_nginx.sh "
       interval 1
       weight -2
}
 
 
vrrp_instance VI_1 {      #虚拟路由器名称,在一个keepalived可以启多个虚拟路由器,每个虚拟路由器的名字都不一样
    state MASTER          #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP,一般都是配置backup,该值无法决定身份,最终还是通过比较priority
    interface eth0        #绑定为当前虚拟路由器使用的物理接口,如:ens32,eth0,bond0,br0
    virtual_router_id 51  #每个虚拟路由器惟一标识,范围:0-255,同一组虚拟路由器的vrid必须一致
    priority 100          #当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此值不同
    advert_int 1          #vrrp通告的时间间隔,默认1s
    nopreempt            #当master宕机恢复之后不抢占master
 
    authentication {      #认证机制 
        auth_type PASS    #AH(不推荐)或PASS
        auth_pass 1111    #预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样
    }
 
    virtual_ipaddress {                      #虚拟IP
        10.0.0.100                           #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认为/32
        10.0.0.101/24 dev eth1               #指定VIP的网卡
        10.0.0.102/24 dev eth2 label eth2:1  #指定VIP的网卡label
    }
    
    track_script {
        chk_nginx_server 
    }
 
}

三、功能模块

 core 主进程启动
 vrrp vrrp协议:热备份路由协议
check 健康状态检测

四、配置双机热备

master

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.156.200
        192.168.156.201
        192.168.156.202
    }
}

backup

global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.156.200
    }
}

五、验证

   ping验证
        ping 192.168.156.200 


    服务验证
        分别在两台主机中安装nginx

  测试


  
  停掉master的服务,再次访问 

六、双机热备的脑裂现象

   Keepalived配置里同一 VRRP实例
如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
    vrrp实例名字不一致、优先级一致
    防火墙打开,导致心跳无法正常通信
    网卡故障
        网卡进行多路复用 

VIP无法通信
    注释:vrrp_strict

总结

Keepalived是一种用于实现双机热备的工具。它可以通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现服务器的高可用性。

在双机热备模式下,Keepalived可以将多个服务器组成一个虚拟的路由器,其中一个服务器作为主服务器处理请求,其他服务器作为备份服务器。如果主服务器发生故障,备份服务器会接管主服务器的工作,确保系统的持续可用性。

    

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

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

相关文章

nuxt2-storybook-vite:环境搭建、基础使用 / nuxt项目组件库

一、创建 nuxt2 项目 安装 - NuxtJS | Nuxt.js 中文网 yarn create nuxt-app <项目名> 二、安装 storybook 2.1、初始化 Storybook pnpm add -g storybook/cli npx -p storybook/cli sb init 命令解释 序号命令命令解释1npx -p storybook/cli sb init是一个命令行…

基于JSP+Servlet+mysql员工权限管理系统

基于JSPServletmysql员工权限管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java web项目 项目名称&#xff1a;基于JSPServlet的员工权限管理系统[qxxt] 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 …

【ag-grid-vue】column

网格中的每一列都使用列定义(ColDef)来定义。列根据在网格选项中指定的列定义的顺序在网格中定位。 列定义 下面的例子展示了一个定义了3列的简单网格: <template><ag-grid-vuestyle"height: 300px; width: 1000px"class"ag-theme-balham":colum…

最新外卖点餐微信小程序源码系统 完整前后端+安装部署教程

分享一个完整的外卖点餐微信小程序源码系统&#xff0c;含完整代码程序包和详细的安装搭建教程。 系统为多用户&#xff0c;可以无限多开&#xff0c;轻松帮助商家开发各种外卖点餐小程序。系统功能特别强大。 小程序源码下载地址&#xff1a;春哥技术博客获取

python SystemRDL 包介绍

对于芯片验证&#xff0c;在验证寄存器环节&#xff0c;如果我们需要根据大量的寄存器来构建我们的sequence或者激励&#xff0c;比如irq测试&#xff0c;我们需要测试irq信号源到寄存器门口的连接是否正常&#xff0c;irq 寄存器各个field的接线排序是否有弄错&#xff0c;以及…

Linux常用命令——dhcpd命令

在线Linux命令查询工具 dhcpd 运行DHCP服务器。 语法 dhcpd [选项] [网络接口]选项 -p <端口> 指定dhcpd监听的端口 -f 作为前台进程运行dhcpd -d 启用调试模式 -q 在启动时不显示版权信息 -t 简单地测试配置文件的语法是否正确的&#xff0c;但不会尝试执行任何网络…

五度易链最新“产业大数据服务解决方案”亮相,打造数据引擎,构建智慧产业!

自2015年布局产业大数据服务行业以来&#xff0c;“五度易链”作为全国产业大数据服务行业先锋企业&#xff0c;以“让数据引领决策&#xff0c;以智慧驾驭未来”为愿景&#xff0c;肩负“打造数据智能引擎&#xff0c;构建智慧产业新生态”的使命&#xff0c;坚持着精益生产、…

地下水资源监控中应用的深水液位传感器

地下水是水资源重要的组成部分,虽属可再生资源,但地下水更新和自净非常缓慢,一旦被污染,所造成的环境与生态破坏,往往长时间难以逆转。目前中国90%的城市地下水遭受污染,已呈现由点向面扩展的趋势。因此,加强对地下水的监控和相应技术的开发成为一种迫切需要。 环境监测是环境…

大数据(一)定义、特性

大数据&#xff08;一&#xff09;定义、特性 本文目录&#xff1a; 一、写在前面的话 二、大数据定义 三、大数据特性 3.1、大数据的大量 (Volume) 特性 3.2、大数据的高速(Velocity)特性 3.3、大数据的多样化 (Variety) 特性 3.4、大数据的价值 (value) 特性 3.5、大…

Linux下套接字TCP实现网络通信

Linux下套接字TCP实现网络通信 文章目录 Linux下套接字TCP实现网络通信1.引言2.具体实现2.1接口介绍1.socket()2.bind()3.listen()4.accept()5.connect() 2.2 服务器端server.hpp2.3服务端server.cc2.4客户端client.cc 1.引言 ​ 套接字(Socket)是计算机网络中实现网络通信的一…

【算法】双指针求解盛最多水的容器

Problem: 11. 盛最多水的容器 文章目录 题目解析算法原理讲解复杂度Code 题目解析 首先我们来解析一下本题 题目中说到&#xff0c;要找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 那我们现在来看最外侧的两根&#xff0c;一个高度为8&#…

GaussDB数据库SQL系列:DROP TRUNCATE DELETE

目录 一、前言 二、GaussDB的 DROP & TRUNCATE & DELETE 简述 1、命令简述 2、命令比对 三、GaussDB的DROP TABLE命令及示例 1、功能描述 2、语法 3、示例 四、GaussDB的TRUNCATE命令及示例 1、功能描述 2、语法 3、示例 4、示例 五、GaussDB的DELETE命令…

一文速学-让神经网络不再神秘,一天速学神经网络基础-激活函数(二)

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

VSCode配置终端默认为cmd命令行方式

1、新建终端 2、点击默认配置文件 3、选择第一个即可&#xff01;

臻图信息基于数字孪生技术搭建智慧电厂管理系统解决方案

随着可再生能源在电力行业中占比不断提升&#xff0c;以及互联网技术的深入和大数据时代的到来&#xff0c;智能化应用正在悄然地改变着电力企业运营模式。臻图信息以数字孪生、ZTMap3D、地理信息为技术手段&#xff0c;从管、查、监、云、端等几个层面全面建设电力监管系统平台…

国产调度器之光——Fsched到底有多能打?

这是一篇推荐我们速石自研调度器——Fsched的文章。 看起来在专门写调度器&#xff0c;但又不完全在写。 往下看&#xff0c;你就懂了。 本篇一共五个章节&#xff1a; 一、介绍一下主角——速石自研调度器Fsched 二、只要有个调度器&#xff0c;就够了吗&#xff1f; 三…

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口 对接源平台:伯俊ERP 伯俊科技&#xff0c;依托在企业信息化建设方面的领先技术与实践积累&#xff0c;致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询与系统实施&#xff0c;助力企业信息化升级、加速…

ChatGPT在工业领域的研究与应用探索-数据与工况认知

1. ChatGPT发展现状 ChatGPT是基于OpenAI的GPT-4架构的一种大型语言模型。截至2021年9月&#xff0c;最新版本是GPT-3。在过去的几年里&#xff0c;ChatGPT已经取得了显著的进步&#xff0c;具备更强的自然语言处理和生成能力。 目前&#xff0c;ChatGPT的应用领域广泛&#…

05架构管理之持续集成-DevOps的理解与实现

专栏说明&#xff1a;针对于企业的架构管理岗位&#xff0c;分享架构管理岗位的职责&#xff0c;工作内容&#xff0c;指导架构师如何完成架构管理工作&#xff0c;完成架构师到架构管理者的转变。计划以10篇博客阐述清楚架构管理工作&#xff0c;专栏名称&#xff1a;架构管理…

基于SSM+vue框架的个人博客网站源码和论文

基于SSMvue框架的个人博客网站源码和论文061 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm &#xff08;设计&#xff09;研究背景与意义 关于博客的未来&#xff1a;在创办了博客中国(blogchina)、被誉为“…