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

news2024/11/20 6:22:18

目录

一、在线安装

二、离线安装

(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.coloradmin.cn/o/1720419.html

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

相关文章

ArcGIS教程(05):计算服务区和创建 OD 成本矩阵

准备视图 启动【ArcMap】->双击打开【Exercise05.mxd】->启用【Network Analyst 扩展模块】。前面的文章已经讲过,这里不再赘述。 创建服务区分析图层 1、在 Network Analyst 工具栏上,单击 【Network Analyst】,然后单击【新建服务…

el-table的一些操作

1.el-table实现全部选择和全部取消 其实非常简单&#xff0c;el-table自带的都有方法toggleAllSelection()和clearSelection() 表格数据&#xff1a; <el-button clickcheckAll>全选</el-button> <el-button clickcancelAll>反选</el-button>// 全…

每日一练编程题:今天是【接口,多态】

设计程序 : 电脑类的属性USB接口数组 : 有3个usb插口电脑类的功能 : 通过接口插入外设 (u盘,麦克风,键盘等) addUSB(USB usb) { }开机 要求: 电脑开机前,先启动外设关机 要求: 电脑关机前,先关闭外设 外设类(u盘,麦克风,键盘等) 功能 : 启动 关闭 USB接口 定义usb设备的统一…

高速服务区智慧公厕管理系统引导屏UI界面展示

在现代社会&#xff0c;高速服务区作为人们出行途中的重要休憩场所&#xff0c;其各项设施的智能化水平也在不断提升。其中&#xff0c;智慧公厕管理系统的出现&#xff0c;为人们带来了更加便捷、舒适的如厕体验&#xff0c;而引导屏 UI 界面更是这一系统的重要展示窗口。 智慧…

电脑设置密码怎么设置?让你的电脑更安全!

在如今信息化的社会中&#xff0c;保护个人电脑的安全至关重要。设置密码是最基本的电脑安全措施之一&#xff0c;它可以有效防止未经授权的访问和保护个人隐私&#xff0c;可是电脑设置密码怎么设置&#xff1f;本文将介绍三种设置电脑密码的方法&#xff0c;帮助您加强电脑的…

vue3学习使用笔记

1.学习参考资料 vue3菜鸟教程&#xff1a;https://www.runoob.com/vue3/vue3-tutorial.html 官方网站&#xff1a;https://cn.vuejs.org/ 中文文档: https://cn.vuejs.org/guide/introduction.html Webpack 入门教程&#xff1a;https://www.runoob.com/w3cnote/webpack-tutor…

wampserver安装与汉化

wampserver安装与汉化 文章目录 wampserver安装与汉化一、安装二、汉化1.升级软件并安装补丁 介绍&#xff1a; WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程&#xff0c;从而腾出更…

谁拥有最多的H100?

谁拥有最多的H100&#xff1f; Omdia数据显示&#xff0c;Meta和微软作为H100的最大买家&#xff0c;各自采购了15万台GPU&#xff0c;两者总计占据30万台的销量。剩余的20万台则由Oracle、腾讯、Google和亚马逊平分&#xff0c;每家各购买了5万台。值得关注的是&#xff0c;报…

HackTheBox-Machines--Shocker

Popcorn 测试过程 1 信息收集 NMAP 开启了两个端口&#xff0c;端口 80&#xff08;http&#xff09;、 2222&#xff08;ssh&#xff09;。 80 端口 访问80端口&#xff0c;页面只有一张图片&#xff0c;无可利用点&#xff0c;尝试进行目录扫描。 目录扫描 目录扫描发现 /c…

网络原理-四

一、续 当窗口大小为0,意味着缓冲区满了,此时发送方,就因该暂停发送,发送方会周期性的除法 " 窗口探测包 " ,并不携带载荷,这样的包对于业务不产生影响,只是为了触发ACK,一旦查询出来的结果是非0,缓冲区右有空间了,发送方就可以继续发送. 二、拥塞控制 要限制发送方…

GPT-4o:新一代人工智能技术的全方位解析引言

目录 &#x1f40b;引言 &#x1f40b;梳理 GPT 各版本之间的内容 &#x1f988;GPT-1&#xff1a;开创性的起点 &#x1f988; GPT-2&#xff1a;参数规模的大幅提升 &#x1f988; GPT-3&#xff1a;参数爆炸与多任务学习 &#x1f988;GPT-4&#xff1a;进一步提升的智…

Qt 5桌面APP开发实战

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 第一节&#xff1a;Qt 5桌面APP开发实战入门 Qt 5的跨平台特性 Qt 5的界面设计工具 Qt 5的…

Leecode---栈---每日温度 / 最小栈及栈和队列的相互实现

栈&#xff1a;先入后出&#xff1b;队列&#xff1a;先入先出 一、每日温度 Leecode—739题目&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温…

Android下HWC以及drm_hwcomposer普法(下)

Android下HWC以及drm_hwcomposer普法(下) 引言 不容易啊&#xff0c;写到这里。经过前面的普法(上)&#xff0c;我相信童鞋们对HWC和drm_hwcomposer已经有了一定的认知了。谷歌出品&#xff0c;必须精品。我们前面的篇章见分析到啥来了&#xff0c;对了分析到了HwcDisplay::in…

git报错prohibited by Gerrit: not permitted: update

git push报错&#xff1a; Push to refs/for/[branch] to create a review, or get Push rights to update the branch. Contact an administrator to fix the permissions (prohibited by Gerrit: not permitted: update)原因&#xff1a; 使用Gerrit代码审核时&#xff0c;本…

c++车票管理系统

这里写自定义目录标题 c车票管理系统vx:sredxc车票管理系统初始页面,需要源码vx:sredxc新增车票信息查询车票信息代码包含完整的发布车票信息,购票,退票,票数检测,余票检测,车票查询等功能 c车票管理系统vx:sredxc 这段代码实现了一个简单的高铁票务管理系统&#xff0c;具有以…

算法每日一题(python,2024.05.24) day.6

题目来源&#xff08;力扣. - 力扣&#xff08;LeetCode&#xff09;&#xff0c;简单&#xff09; 解题思路&#xff1a; 排序&#xff0b;双指针 先将两个数组进行排序&#xff0c;cursor1和cursor分别指向两个数组的首位&#xff0c;比较两个指针所指的值的大小&#xff0…

斑消宝六周年大动作,斑小将将再迎高光时刻

如今&#xff0c;周年庆典已经成为众多品牌展示自身实力与影响力的重要舞台。这不仅仅是一个简单的庆祝活动&#xff0c;更是一次向外界展示品牌发展历程、未来规划以及团结合作伙伴的绝佳机会。在这样的背景下&#xff0c;广州斑消宝化妆品有限公司将打造别具一格的盛典&#…

TiDB-从0到1-分布式存储

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCC 一、TiDB-DML语句执行流程&#xff08;增删改&#xff09; DML流程概要 1、协议验证 用户连接到TiDB Server后首先工作的是Protocol Layer模块&#xff0c;该模块会对用…

【Node】Assertion testing 模块的使用

简言 node:assert 模块提供了一组用于验证不变式的断言函数。 node版本&#xff1a;20.14.0 Assertion testing 测试断言模块 node:assert 模块是一个测试相关的模块。 严格模式和非严格模式 感觉该模块的严格模式和js的严格模式相匹配&#xff0c;非严格模式也是这样的。…