【keepalived双机热备与 lvs(DR)】

news2024/11/25 2:42:26

目录

一、概述

1.简介

2.原理

3.作用

二、安装

1.配置文件

2.配置项

三、功能模块

1.core

2.vrrp

3.check

四、配置双机热备

1.master

2.backup

五、验证

1.ping验证

2.服务验证

六、双机热备的脑裂现象

七、keepalived+lvs(DR)

1.作用

2.调度器配置

2.1 安装keepalived

2.2 安装ipvsadm

2.3 配置keepalived

2.3.1 主

2.3.1 从

2.4 查看lvs节点状态

3.web节点配置

3.1 调整ARP参数

3.2 配置虚拟IP地址

3.3 添加回环路由

3.4 安装nginx


一、概述

1.简介

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

2.原理

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

3.作用

解决单点故障问题

二、安装

yum install -y keepalived

1.配置文件

/etc/keepalived/keepalived.conf

2.配置项

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
        }
 

三、功能模块

1.core

主进程启动

2.vrrp

vrrp协议:热备份路由协议

3.check

健康状态检测

四、配置双机热备

1.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.42.100
        192.168.42.101
        192.168.42.102
    }
}

2.backup

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.42.100
        192.168.42.101
        192.168.42.102
    }
}

五、验证

1.curl验证

 

2.关闭主服务验证

 

 

六、双机热备的脑裂现象

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

 :VIP无法通信,注释:vrrp_strict

七、keepalived+lvs(DR)

1.作用

  • 使用keepalived解决lvs的单点故障
  • 高可用集群

2.调度器配置

2.1 安装keepalived

yum install -y keepalived

2.2 安装ipvsadm

yum install -y ipvsadm
modprobe ip_vs
lsmod |grep ip_vs

2.3 配置keepalived

2.3.1 主

vim /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_connect_timeout 30
   router_id LVS_DEVEL1
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

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.42.200        
    }
}

virtual_server 192.168.42.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind
DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.42.5 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 1
92.168.42.6 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3

        }
    }
}

2.3.1 从

vim /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_connect_timeout 30
   router_id LVS_DEVEL2
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

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.42.200        
    }
}

virtual_server 192.168.42.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind
DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.42.5 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 1
92.168.42.6 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3

        }
    }
}

2.4 查看lvs节点状态

systemctl start keepalived
ipvsadm -ln

ip a

3.web节点配置

3.1 调整ARP参数

vim /etc/sysctl.conf
        net.ipv4.conf.all.arp_ignore=1 
        net.ipv4.conf.all.arp_announce=2 
        net.ipv4.conf.default.arp_ignore=1 
        net.ipv4.conf.default.arp_announce = 2 
        net.ipv4.conf.lo.arp_ignore = 1 
        net.ipv4.conf.lo.arp_announce=2
sysctl -p

3.2 配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

        DEVICE=lo:0
        IPADDR=192.168.115.200
        NETMASK=255.255.255.255
        ONBOOT=yes
        NAME=loopback:0

3.3 添加回环路由

route add -host 192.168.42.200/32 dev lo:0

3.4 测试

 

 断掉主,测试备

 

 

 

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

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

相关文章

C++11特性详解

一、简介 在C11标准出来之前,一直是C98/03标准占引领地位,而C98/03标准是C98标准在2003年将存在的一些漏洞进行了修复,但并没有核心语法的改动。相比于C98/03,C11则带来了数量可观的变化,其中包含了约140个新特性&…

通过Putty对Linux服务器进行文件的上传与下载

1、下载安装Putty,下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 2、打开cmd窗口,通过命令行进入安装路径,如: 3、上传文件 pscp 文件 用户名服务器ip:目录使用“ -l ”选项可以指定用户…

keepalived+lvs(DR)

目录 一,作用 二,调度器配置 1,安装keepalived 2, 安装ipvsadm 3, 配置keepalived 4. 查看lvs节点状态 5, web节点配置 1.1 调整ARP参数 1.2 配置虚拟IP地址 1.3添加回环路由 1.4安装nginx并写…

【Unity学习笔记】DOTween(2)官方案例

本文中大部分内容学习来自DOTween官方文档 此处无法展示动图(懒得录GIF),请下载官方案例场景自行学习 文章目录 场景1 基本补间场景2 动态补间场景3 Shader修改场景4 路径拟合运动场景5 序列播放场景6 UGUI 场景1 基本补间 案例一展示了最基…

技术博客写作「个人经验分享」

技术博客写作「个人经验分享」 仔细想来,从19年我刚开始试着技术写作算起,已经过去了好几年时间。刚好趁着这次的[赠送奖牌活动(奖牌很好看,我很想要hhh😂)],来分享一下我关于技术博客写作的一些个人经验~ 文章目录 技术博客写作「…

k8s 常用命令(四)

12、删除pod中的nginx服务及service [rootmaster ~]# kubectl delete deployment nginx -n kube-public [rootmaster ~]# kubectl delete svc -n kube-public nginx-service 13、查看endpoint的信息 [rootmaster ~]# kubectl get endpoints 14、修改/更新(镜像、…

内网穿透实战应用-windwos10系统搭建我的世界服务器,内网穿透实现联机游戏Minecraft

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

Unbutu系统-Docker安装、JDK环境配置,Docker常用指令、Docker安装MySQL、Redis、Tomcat、Nginx,前端后分离项目部署

目录 1、防火墙 1.1、查看防火墙状态 1.2、开启防火墙 1.3、关闭防火墙 1.4、重启防火墙 1.5、查看防火墙版本 2、安装JDK 2.1、官网下载tar包 2.3、解压tar.gz文件 2.4、配置环境变量 2.4.1、查看安装路径 2.4.2、设置环境变量 2.4.3、执行该让环境变量生效 2.4…

vue2.6及以下版本导入 TDesign UI组件库

TDesign 官方文档:https://tdesign.tencent.com/vue/components/button 我们先打开一个普通的vue项目 然后 如果你是 vue 2.6 或者 低于 2.6 在终端执行 npm i tdesign-vue如果你是 2.7 或者更高 执行 npm i tdesign-vuenaruto这里 我们 以 2.6为例 因为大部分人 用vue2 都是…

华为“天才少年”稚晖君发布具身智能机器人远征A1,引领智能科技新时代!

原创 | 文 BFT机器人 继前几天小米发布仿生四足机器人CyberDog2之后,2023年8月18日上午,被称为“华为天才少年”、“野生钢铁侠”的彭志辉,也就是B站硬核科技UP主稚晖君。 他目前担任智元CTO和首席架构师,他和他的智元团队创业半…

【C++STL入门】vector查、改、交换

文章目录 前言一、查1.1 输出全部迭代器下标运算for_each函数 1.2 输出单个元素at()函数[] 下标运算back()函数 二、改assign函数 三、交换swap函数 总结 前言 一、查 在C中,使用vector进行查找操作可以分为两类:输出全部和输出单个元素。下面将详细介绍…

音视频FAQ(二)视频直播延时高

摘要 延时高是实时互动技术中常见的问题之一,解决延时高问题需要综合考虑网络、设备、编解码算法等多个因素。解决方案包括优化设备端延时、优化网络传输延时和使用UDP进行音视频传输等。在选择音视频传输协议时,需要综合考虑实际需求和网络条件&#x…

图神经网络与分子表征:2. SchNet

SchNet 在2018年的面世彻底引爆了神经网络势函数(NNP, Neural Network Potential)领域,虽然说NNP的开山鼻祖还要更早,但均未像 SchNet 这样真正被物理化学家接受,引发变革。 这篇博客浅浅记录下自己阅读SchNet代码的心得。2023年的今天&…

如何五分钟设计制作自己的蛋糕店小程序

在现如今的互联网时代,小程序已成为企业推广和销售的重要利器。对于蛋糕店来说,搭建一个小程序可以为其带来更多的品牌曝光和销售渠道。下面,我们将以乔拓云平台为例,来教你如何从零开始搭建自己的蛋糕店小程序。 首先&#xff0c…

Mybatis分页及特殊字符

目录 MyBatis分页 特殊字符 接着上篇博客接下来我们要写的是MyBatis分页 MyBatis分页 首先我们导入pom依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version>…

workbench连接MySQL8.0错误 bad conversion 外部组件 异常

阿里云搭建MySQL实用的版本是8.0 本地安装的版本是: workbench 6.3 需要升级到&#xff1a; workbench 8.0 https://dev.mysql.com/downloads/workbench/

基于 SVG 的图形交互方案实践

不知道从什么时候起&#xff0c;人们开始喜欢上数字大屏这种“花里胡哨”的东西&#xff0c;仿佛只要用上“科技蓝”这样神奇的色调&#xff0c;就可以让一家公司焕然一新&#xff0c;瞬间变得科技感满满。不管数字大屏的实际意义&#xff0c;是用来帮助企业监控和决策&#xf…

压力传感器丨定义、原理、应用

压力传感器是工业实践中常用的设备&#xff0c;作为自控系统的重要组成部分&#xff0c;压力传感器能够用于工业过程中压力参数的测量和控制&#xff0c;常用于高温、低压、腐蚀、振动等环境。 压力传感器的原理是基于压力感测技术&#xff0c;能够将被测压力转化为4G信号&…

开学日临近,送你一份VR校园攻略

开学日临近&#xff0c;各位萌新是否还在心怀激荡&#xff0c;无限憧憬着美丽校园呢&#xff1f;可能有一部分大学已经开学了&#xff0c;那么刚入校园的你们&#xff0c;是不是也想尽快熟悉未来学习、生活的地方呢&#xff1f;这份VR校园攻略带你沉浸式体验校园生活。 首先是大…

基于前端技术原生HTML、JS、CSS 电子病历编辑器源码

电子病历系统采取结构化与自由式录入的新模式&#xff0c;自由书写&#xff0c;轻松录入。实现病人医疗记录&#xff08;包含有首页、病程记录、检查检验结果、医嘱、手术记录、护理记录等等。&#xff09;的保存、管理、传输和重现&#xff0c;取代手写纸张病历。不仅实现了纸…