Centos7.9环境下安装Keepalived(亲测版)

目录

一、在线安装

二、离线安装

(1)、 下载

(2)、安装依赖包

(3)、解压文件 

(4)、编译

(4.1)、进入 keepalived-2.2.8 目录中

(4.2)、安装Keepalived

 (5)、配置文件修改

 (6)、启动

 (7)、检查启动状态

(8)、 设置开机自启

 (9)、配置从节点

 (10)、启动从节点keepalived

 (11)、检查从节点状态

(12)、主从节点差异

三、验证VIP漂移

(1)、主节点停止keepalived

(2)、查看从节点状态

(3)、启动主节点

(4)、查看主从状态

四、配置非抢占式

(1)、概念

(2)、非抢占配置

(3)、vip漂移演示

五、问题 

(1)、脑裂问题

(1.1)、现象:

 (1.2)、脑裂故障原因

 (1.3)、故障排查

(1.4)、处理办法之关闭防火墙

(1.5)、处理办法之添加vrrp协议

(2)、WARNING - this build will not support IPVS with IPv6

(2.1)、处理方式:


一、在线安装

执行命令

yum install keepalived

 执行完成后,修改配置文件并启动,配置文件启动方法参考离线安装方式

二、离线安装

(1)、 下载

下载源码包,根据自己需要选择版本,本次安装使用的是2.2.8版本

(2)、安装依赖包

keepalived依赖包有openssl-devel 、net-snmpdevel、libnl、libnl-devel,需要先安装,安装方法可以参考本人nginx安装文章,整体安装的包在nginx基础上多两个,可能会有些雍余,但是不影响。

具体明细如下图:

执行命令

rpm -Uvh *.rpm --nodeps --force

 

(3)、解压文件 

(4)、编译

(4.1)、进入 keepalived-2.2.8 目录中

(4.2)、安装Keepalived

依次执行命令:

./configure --prefix=/usr/local/keepalived

make

make install

prefix后边的路径为keepalived安装的路径

 

 进入到/usr/local下可以看到keepalived安装目录

 (5)、配置文件修改

进入目录/usr/local/keepalived/etc/keepalived

复制keepalived.conf.sample  并且命名为keepalived.conf

修改配置文件 keepalived.conf

! Configuration File for keepalived

global_defs { #全局配置

   router_id lb132  #标识身份->名称
 
}

vrrp_instance VI_1 { #vrrp 实例定义部分 VI_1
    state MASTER #标识角色状态:主节点
    interface ens33 #网卡绑定接口:绑在ens33 上
    virtual_router_id 51 #虚拟路由id
    priority 100  #优先级 主节点值要大于备用节点
    advert_int 1 #监测间隔时间:1秒
    authentication { #认证
        auth_type PASS #认证方式 主从节点要一致
        auth_pass 1111 #认证密码  主从节点要一致
    }
    virtual_ipaddress {
        192.168.75.131 #虚拟的VIP地址
    }
}

 (6)、启动

systemctl start keepalived

 (7)、检查启动状态

systemctl status keepalived

或者 ip a

 

 

(8)、 设置开机自启

systemctl enable keepalived

 (9)、配置从节点

在从节点服务器中按以上步骤安装keepalived,对应的配置文件与主节点有些差别,具体如下

! Configuration File for keepalived

global_defs {

   router_id lb129
 
}

vrrp_instance VI_1 {
    state BACKUP #标识角色状态:备节点
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.75.131
    }
}

 (10)、启动从节点keepalived

systemctl start keepalived

 (11)、检查从节点状态

systemctl status keepalived

或者 ip a

 从节点此时不应该有虚拟vip

(12)、主从节点差异

keepalived配置区别Master节点配置Backup节点配置
router_id(唯一标识)router_id lb132router_id lb129
state(角色状态)state MASTERstate BACKUP
priority(优先级)priority 100priority  50

三、验证VIP漂移

(1)、主节点停止keepalived

systemctl stop keepalived

#查看状态

ip a

(2)、查看从节点状态

ip a

(3)、启动主节点

systemctl start keepalived

 

(4)、查看主从状态

四、配置非抢占式

(1)、概念

上边的配置方式都是抢占方式,即如果Master故障,Backup自动接管,Master恢复后会夺权,

所以抢占方式与非抢占方式的区别为:

  • 抢占式:如果Master恢复后将VIP抢回来,就叫抢占式
  • 非抢占式:节点都是BACKUP,只要节点成为为VIP,其他节点就是启动恢复,哪怕式权重高也不会把VIP抢回来,就叫非抢占式。 

(2)、非抢占配置

配置步骤:

 1.两个节点上的state都必须配置为BACKUP

  2.两个节点都必须加上配置nopreempt

  3.其中一个节点的优先级必须高于另一个节点的优先级

两个节点配置如下:

## lb132

! Configuration File for keepalived

global_defs {

   router_id lb132

}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.75.131
    }
}
 

## lb129


! Configuration File for keepalived

global_defs {

   router_id bl129

}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.75.131
    }
}

(3)、vip漂移演示

分别启动129和132服务中的keepalived服务,虽然132的权重比较高,但是因为是非抢占式并且129先启动的,所以vip不会漂移到132中。这也说明非抢占模式只要

五、问题 

(1)、脑裂问题

(1.1)、现象:

如果两台服务器都认为自己是Master,就会出现VIP在两台服务器上,造成冲突

 

 (1.2)、脑裂故障原因

  • 服务器网线松动等网络故障
  • 服务器硬件故障发生损坏现象而崩溃
  • 主备都开启firewalld防火墙
  • 配置文件错误

 (1.3)、故障排查

先排查对应的配置文件是否有错误,确保配置文件没有问题

如果配置文件没有错误,则重启keepalived服务

systemctl restart keepalived

观察日志

 tail -f /var/log/messages

 主节点重启后,它会直接去抢MASTER,日志如下:

 从节点重启后,先是进入BackUp状态,然后马上又会争抢进入Master状态,日志如下:

日志显示,从节点先进入 BACKUP,但是紧接着从节点Receive advertisement timeout,接收广播超时后,进入主节点状态。

此时检查了服务器防火墙状态发现,防火墙状态是开启状态。

(1.4)、处理办法之关闭防火墙

关闭从节点防护墙,查看日志发现,从节点正常

 这种关闭防火墙的方式可以解决此问题,但在线上是不可行的。

(1.5)、处理办法之添加vrrp协议

通过命令查看防火墙当前配置

firewall-cmd --list-all

通过命令添加协议

firewall-cmd --zone=public --add-protocol=vrrp --permanent

#重启防火墙

firewall-cmd --reload

查看从节点状态

从节点状态正常

(2)、WARNING - this build will not support IPVS with IPv6

(2.1)、处理方式:

执行./configure --prefix=/usr/local/keepalived 时候报该警告,是因为对应的依赖libnl、libnl-devel没有安装,直接安装如下的对应的依赖包即可

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

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

相关文章

vue3中实现鼠标点击后出现点击特效

一、效果展示 图片下方为效果体验地址 缓若江海凝清光 二、代码 js中&#xff1a; <script setup lang"ts"> window.addEventListener("click", (e: MouseEvent) > {const pointer document.createElement("div");pointer.classLi…

数模混合芯片之可靠性设计

一、可靠性设计目的 数模混合芯片设计之所以需要可靠性设计&#xff0c;主要原因有以下几点&#xff1a; 工艺与环境影响&#xff1a; 半导体制造工艺存在着不可避免的随机和系统性偏差&#xff0c;这可能导致芯片内部的模拟电路和数字电路参数发生变化&#xff0c;影响性能…

CobaltStrike基本渗透

目录 CobaltStrike简介 主要功能&#xff1a; 使用注意&#xff1a; 在使用CobaltStrike进行渗透测试时&#xff0c;务必遵守法律法规&#xff0c;并获得合法授权。 CobaltStrike安装 前提 安装 服务端安装 windows安装 CS基本使用 监听器配置 一些基本的攻击…

算法(十四)动态规划

算法概念 动态规划&#xff08;Dynamic Programming&#xff09;是一种分阶段求解的算法思想&#xff0c;通过拆分问题&#xff0c;定义问题状态和状态之间的关系&#xff0c;使得问题能够以递推&#xff08;分治&#xff09;的方式去解决。动态规划中有三个重点概念&#xff…

【监控】prometheus自定义指标 exporter

一、【写在前面】 prometheus自定义指标本质是用代码自己写一个网络访问的采集器&#xff0c;你可以在官网看到&#xff0c;Client libraries | Prometheus官方支持的语言有GO JAVA PYTHON RUBY RUST, 第三方的库就支持的更多了&#xff0c;有BASH C CPP LUA C# JS PHP R PER…

智慧医院物联网建设-统一管理物联网终端及应用

近年来&#xff0c;国家卫健委相继出台的政策和评估标准体系中&#xff0c;都涵盖了强化物联网建设的内容。物联网建设已成为智慧医院建设的核心议题之一。 作为医院高质量发展的关键驱动力&#xff0c;物联网的顶层设计与网络架构设计规划&#xff0c;既需要结合现代信息技术的…

Python3位运算符

前言 本文介绍的是位运算符&#xff0c;位运算可以理解成对二进制数字上的每一个位进行操作的运算&#xff0c;位运算分为 布尔位运算符 和 移位位运算符。 文章目录 前言一、位运算概览1、布尔位运算符1&#xff09;按位与运算符 ( & )2&#xff09;按位或运算符 ( | )3…

一款C#开源、简单、免费的屏幕录制和GIF动画制作神器

前言 今天要给大家推荐一款由C#语言开发且开源的操作简单、免费的屏幕录制和GIF动画制作神器&#xff1a;ScreenToGif 。 工具介绍 ScreenToGif 是一款免费的开源屏幕录制和GIF 制作工具。它可以帮助用户捕捉计算机屏幕上的实时动画&#xff0c;并将其保存为高质量的 GIF 图像…

开发者工具-sources(源代码选项)

一、概要说明 源代码面板从视觉效果上分为三个区域&#xff1a;菜单区、内容区、监听区。 菜单区里面有5个子分类&#xff1a; 网页(Page)&#xff1a;指页面源&#xff0c;包含了该页面中所有的文件&#xff0c;即使多个域名下的文件也都会展示出来&#xff0c;包括iframe…

手机耳机哪个品牌音质好

在寻找音质出色的手机耳机时&#xff0c;品牌选择显得尤为重要。市场上众多知名品牌提供了各式各样的耳机产品&#xff0c;它们在音质、降噪功能、设计等方面各有千秋。以下是一些在音质上表现优异的手机耳机品牌的分析&#xff1a; 索尼&#xff1a;索尼的耳机以其卓越的降噪技…

开利网络参加广州数据交易所学习活动

开利网络做为南沙广州数据交易所的会员参加了由“广东三会”组织的“数据资产”相关学习活动。&#xff08;下图为开利董事长付立军先生在签到&#xff09; 学习内容提现了数字时代企业数字化转型的核之心“发掘数据价值&#xff0c;驱动高速发展”&#xff0c;交易中心组织大家…

5G NR TAE TEST

环境配置&#xff1a; 测试TAE时&#xff0c;需要比对不同的Antenna Port之间的差异来测试 配置DL 2 layer MU的case layer1&#xff1a;通过设置weight&#xff0c;只有一个物理天线上有weight&#xff0c;其他天线上的weight为0&#xff0c;该天线的DMRS DMRS Port设置为1…

学习Java的日子 Day51 数据库,DDL

Day51 MySQL 1.数据库 数据库&#xff08;database&#xff09;就是一个存储数据的仓库。为了方便数据的存储和管理&#xff0c;它将数据按照特定的规律存储在磁盘上。通过数据库管理系统&#xff0c;可以有效地组织和管理存储在数据库中的数据 MySQL就是数据库管理系统&#…

PLC无线通讯模块

在工业自动化日益深入的今天&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;作为工业控制的核心大脑&#xff0c;其功能的扩展和智能化水平直接影响着整个生产线的效率和安全性。而PLC无线通讯模块&#xff0c;作为连接PLC与外界信息世界的桥梁&#xff0c;其重要性不…

Centos给普通用户添加sudo命令权限

打开sudoers文件 sudo visudo 修改sudoers文件 找到root ALL(ALL) ALL这一行&#xff0c;即如下图标出红线的一行 在此行下新增如下内容: lbs为用给予sudo执行权限的用户名 # 执行sudo命令&#xff0c;需要输入命令 lbs ALL(ALL) ALL 或 # 执行sudo命令&#xff0c;…

HQChart使用教程100-uniapp如何在vue3运行微信小程序

HQChart使用教程100-uniapp如何在vue3运行微信小程序 症状原因分析解决思路解决步骤1. 修改vender.js2. 修改HQChartControl.js 完整实例HQChart代码地址 症状 HQChart插件在uniappvue3的项目编译成小程序以后&#xff0c; 运行会报错&#xff0c;见下图。 原因分析 查了下…

【Mac】 Infuse for Mac(多媒体播放器) v7.7.6软件介绍和安装

软件介绍 Infuse Pro是一款非常强大的视频播放器&#xff0c;它被誉为 Apple TV上最强的播放器。它支持广泛的视频格式和解码器&#xff0c;包括DTS、DTS-HD、AC3、E-AC3等高清视频的音频播放任务。此外&#xff0c;Infuse Pro还支持所有常见的高清格式。 Infuse Pro的特点之…

软件行业人均工资多少?20万已完胜大多数

本篇文章继续讨论中国软件行业的人效比。&#xff08;金融科技公司的人效比链接在这里。&#xff09; 这次选择了7家公司&#xff1a;软通动力、用友网络、中科软、东软集团、航天信息、东华软件、中国软件&#xff0c;均是中国软件行业排名比较靠前、业务相对纯粹的软件公司。…

如何仿一个抖音极速版领现金的进度条动画?

效果演示 不仅仅是实现效果&#xff0c;要封装&#xff0c;就封装好 看完了演示的效果&#xff0c;你是否在思考&#xff0c;代码应该怎么实现&#xff1f;先不着急写代码&#xff0c;先想想哪些地方是要可以动态配置的。首先第一个&#xff0c;进度条的形状是不是要可以换&am…

力扣257. 二叉树的所有路径

思路&#xff1a;题目需要记录从根节点开始走的路径&#xff0c;无疑选用前序遍历&#xff0c;用一个数组paths 记录走过的节点信息&#xff0c;遇到叶子节点就用另一个list记录下路径&#xff0c;回溯时删掉paths尾节点即可 class Solution {public List<String> binar…