一个执着于技术的公众号

Keepalived系列导读

Keepalived入门学习

keepalived安装及配置文件详解

前言

在前面的章节中,我们学习了Keepalived简介、原理、以及Keepalived 配置文件的详细解读;今天我们通过几个配置实例来帮助大家掌握Keepalived的高可用性。

Keepalived单实例主备模式实战

配置Keepalived实现单实例单IP自动漂移接管

1、准备两台机器


2、安装 Keepalived软件

yum -y install keepalived

需要在qll251和qll252两台服务器上同时安装Keepalived

3、修改Keepalived配置文件

3.1 qll251为MASTER,配置文件如下:

vim /etc/keepalived/keepalived.conf

配置文件详细说明,参考:

keepalived 配置文件详解

这里我们只注意一点:服务器qll251 作为实例VI_1的master,实例ID为60,实例优先级150,浮动IP地址为10.43.187.201

3.2 qll252为BACKUP,配置文件如下:

vim /etc/keepalived/keepalived.conf

4、启动Keepalived服务

systemctl start keepalived

注意:MASTER跟BACKUP节点都要启动Keepalived服务

5、验证虚拟IP自动漂移

由于VI_1实例中,qll251优先级高于qll252,因此qll251为MASTER

在服务器qll251上,可以看到虚拟IP10.43.187.201

而qll252作为Keepalive备节点,无浮动ip:


进行高可用主备服务器切换实验:

(1)将qll251节点Keepalived服务停止,模拟MASTER宕机

(2)关闭qll251节点服务后,备节点接管绑定VIP

(3)通过日志,查看Keepalived主备切换过程

通过日志,发现备节点qll252已经接管绑定了10.43.187.201这个VIP,期间备节点发送ARP广播,让所有客户端更新本地的ARP表,以便客户端访问新接管VIP服务的节点。

此时备节点已接管VIP,若再次启动主节点的Keepalived服务,主节点是否会接管回VIP?我们验证下

(启动主节点qll251 Keepalived服务过程省略,我们通过日志观察切换现象)

通过日志得知:由于主节点优先级高于备节点,因此主节点抢占为MASTER,同时备节点成为BACKUP,并且移除VIP。

以上便实现了单实例Keepalived服务IP自动漂移接管;VIP漂移至新机器,用户的访问请求自然就会找新机器了。

Keepalived双实例双主模式配置实战

前面给出的是Keepalived单实例主备模式的高可用演示;Keepalived还支持多实例多业务双向主备模式,即A业务在qll251上是主模式,在qll252上是备模式,而B业务在qll251上是备模式,在qll252上是主模式,下面就以双实例为例讲解不同业务实现双主的配置。

1、准备两台机器

下图为Keepalived双实例双主模式IP及VIP规划表:


2、安装 Keepalived软件

yum -y install keepalived

需要在qll251和qll252两台服务器上同时安装Keepalived

3、修改Keepalived配置文件

3.1 qll251配置文件修改如下:

[root@qll251 ~]# vim /etc/keepalived/keepalived.conf
14 state MASTER
15 interface eth0
16 virtual_router_id 60
17 priority 150
18 advert_int 1
19 authentication {
20 auth_type PASS
21 auth_pass 1111
22 }
23 virtual_ipaddress {
24 10.43.187.201/24 dev eth0 label eth0:1
25 }
26 }
27
28 vrrp_instance VI_2 {
29 state BACKUP
30 interface eth0
31 virtual_router_id 61
32 priority 100
33 advert_int 1
34 authentication {
35 auth_type PASS
36 auth_pass 1111
37 }
38 virtual_ipaddress {
39 10.43.187.202/24 dev eth0 label eth0:2
40 }
41 }

实例VI_1qll251节点上的角色为,实例VI_2qll251节点上的角色为

3.2 qll252配置文件修改如下:

[root@qll252 ~]# vim /etc/keepalived/keepalived.conf
14 state BACKUP
15 interface eth0
16 virtual_router_id 60
17 priority 100
18 advert_int 1
19 authentication {
20 auth_type PASS
21 auth_pass 1111
22 }
23 virtual_ipaddress {
24 10.43.187.201/24 dev eth0 label eth0:1
25 }
26 }
27
28 vrrp_instance VI_2 {
29 state MASTER
30 interface eth0
31 virtual_router_id 61
32 priority 150
33 advert_int 1
34 authentication {
35 auth_type PASS
36 auth_pass 1111
37 }
38 virtual_ipaddress {
39 10.43.187.202/24 dev eth0 label eth0:2
40 }
41 }

实例VI_1qll252节点上的角色为,实例VI_2qll252节点上的角色为

如果您是手机阅读的,配置文件查看起来应该不方便吧。这里我们就通过截图对比下主备节点配置文件差别项:


通过对比可以看出,主备节点配置文件实际就两项区别:

  • state(状态)

  • priority(优先级,数值越大优先级越高)

4、验证

首先关闭qll251和qll252的Keepalived服务,然后再进行如下操作:

//在qll251上进行如下操作:
[root@qll251 ~]# systemctl start keepalived
[root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.201/24 scope global secondary eth0:1
inet 10.43.187.202/24 scope global secondary eth0:2
//由于qll252还没开服务,主备VIP都绑定在qll01上 //在qll252上进行如下操作:
[root@qll252 ~]# systemctl start keepalived
[root@qll252 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.202/24 scope global secondary eth0:2
//开启qll252服务,由于在实例VI_2中其优先级高于qll251,因此VIP10.43.187.202绑定在qll252 //再次在qll251上进行如下操作:
[root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202"
inet 10.43.187.201/24 scope global secondary eth0:1
//qll251上只有10.43.187.201了

经验证,我们发现qll251,qll252主备节点已经实现了当任意一端宕机时,VIP可以实现互相切换接管。在实际工作中,可以把www.cloud.com解析到VIP 10.43.187.201提供服务,把bbs.cloud.com解析到10.43.187.202提供服务。当然,qll251,qll252也要配置相应服务,例如:Nginx反向代理服务等。

结语

如果您觉得看完本文后有所收获, 还希望您随手帮忙点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!

往期精彩

◆  必看 | Linux系列学习书籍免费送

◆  利用expect批量修改Linux服务器密码

◆  Linux运维工程师面试问答录

◆  LVM逻辑卷学习

◆  Linux网络重点知识总结性梳理

◆  抓包工具tcpdump用法说明

◆  一文带你速懂虚拟化KVM和XEN

◆  实战 | Hadoo大数据集群搭建

◆  运维工程师心法:6大技能让你告别背锅

◆  亿级web系统负载均衡几种实现方式

干货 | Keepalived高可用服务配置实例的更多相关文章

  1. Keepalived高可用服务

    Keepalived高可用服务 避免负载均衡服务出现单点问题 高可用服务原理 Keepalived的工作原理: Keepalived高可用对之间是通过VRRP通信的,因此,我从 VRRP开始了解起: ...

  2. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  3. keepalived高可用服务配置管理

    实验环境: 主机 ipaddress 服务 备注 k8s-master1 10.0.0.63 nginx k8s-master2 10.0.0.64 nginx k8s-node1 10.0.0.65 ...

  4. Redis + keepalived 高可用行配置检测脚本

    Redis 在生产配置中:除redis集群.哨兵模式之外:主从模式还是比较普遍的. 配置 redis 多主从:由 keepalived 做 VIP 地址漂移.可以实现redis的高可用性. keepa ...

  5. keepalived高可用集群。

    keepalived故障切换转移原理1vrrp协议:(vritual router redundancy protocol)虚拟路由冗余协议,2故障转移.keepalived三大功能1实现物理高可用, ...

  6. Linux系统——Keepalived高可用集群

    #### keepalived服务的三个重要功能1. 管理LVS负载均衡软件Keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动,停止功能,这使得 ...

  7. Nginx入门篇(七)之Nginx+keepalived高可用集群

    一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...

  8. Linux实战教学笔记31:Keepalived高可用集群应用实践

    1.1 Keepalived高可用软件 1.1.1 Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入 ...

  9. 企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

    1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...

随机推荐

  1. RocketMQ实现分布式事务

    相关文章:http://www.uml.org.cn/zjjs/201810091.asp(深入理解分布式事务,高并发下分布式事务的解决方案) 三种分布式事务: 1.基于XA协议的两阶段提交 2.消息 ...

  2. 表单属性method的值get和post的区别?什么时候用get?什么时候用post?

    get和post的区别 一.安全性 因为get会将用户名和密码放在URL中,进而出现在浏览器的历史记录中,显然这种情况应该用post. 二.编码 get只能向服务器发送ASCII字符,而post则可以 ...

  3. Spring Mvc 源代码之我见 一

    spring mvc 是一个web框架,包括controller.model.view 三大块.其中,核心在于model这个模块,用于处理请求的request. 和之前的博客一样,关键的代码,我会标注 ...

  4. 学习SVN03

    SVN版本控制系统最佳实践   第1章SVN介绍及应用场景 1.1什么是SVN(Subversion) Svn(subversion)是近年来崛起非常优秀的版本管理工具,与CVS管理工具一样,SVN是 ...

  5. 数据结构:DHUOJ 单链表ADT模板应用算法设计:长整数加法运算(使用单链表存储计算结果)

    单链表ADT模板应用算法设计:长整数加法运算(使用单链表存储计算结果) 时间限制: 1S类别: DS:线性表->线性表应用 题目描述: 输入范例: -5345646757684654765867 ...

  6. .c文件和.h文件的关系

    参考:12 另一篇:c源文件中为什么要包含自己对应的头文件 问题 在进行C语言文件移植时,遇到 "通常是每个.c文件对应一个.h文件",之前了解过.h文件是头文件,用来引用其他文件 ...

  7. 【动态系统的建模与分析】9_一阶系统的频率响应_低通滤波器_Matlab/Simulink分析

    magnitude response:振幅响应 phase response:相位响应 传递函数G(S)为什么将S看成jw化成G(jw)通过[动态系统的建模与分析]8_频率响应_详细数学推导 G(jw ...

  8. ZEGO音视频服务的高可用架构设计与运营

    前言: ZEGO 即构科技作为一家实时音视频的提供商,系统稳定性直接影响用户的主观体验,如何保障服务高可用且用户体验最优是行业面临的挑战,本文结合实际业务场景进行思考,介绍 ZEGO 即构在高可用架构 ...

  9. 《CSS 揭秘》作者Lea Verou:我喜欢分享开源的行业文化

    本文仅用于学习和交流,不用于商业目的.非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/art... 访谈嘉宾: Lea VerouW3C CSS ...

  10. python去除txt文件空白行

    代码: def delblankline(infile, outfile): infopen = open(infile, 'r', encoding="utf-8") outfo ...