干货 | 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
配置文件详细说明,参考:
这里我们只注意一点:服务器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_1在qll251节点上的角色为主,实例VI_2在qll251节点上的角色为备。
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_1在qll252节点上的角色为备,实例VI_2在qll252节点上的角色为主。
如果您是手机阅读的,配置文件查看起来应该不方便吧。这里我们就通过截图对比下主备节点配置文件差别项:
通过对比可以看出,主备节点配置文件实际就两项区别:
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反向代理服务等。
结语
如果您觉得看完本文后有所收获, 还希望您随手帮忙点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!
往期精彩
◆ LVM逻辑卷学习
干货 | Keepalived高可用服务配置实例的更多相关文章
- Keepalived高可用服务
Keepalived高可用服务 避免负载均衡服务出现单点问题 高可用服务原理 Keepalived的工作原理: Keepalived高可用对之间是通过VRRP通信的,因此,我从 VRRP开始了解起: ...
- 十一.keepalived高可用服务实践部署
期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...
- keepalived高可用服务配置管理
实验环境: 主机 ipaddress 服务 备注 k8s-master1 10.0.0.63 nginx k8s-master2 10.0.0.64 nginx k8s-node1 10.0.0.65 ...
- Redis + keepalived 高可用行配置检测脚本
Redis 在生产配置中:除redis集群.哨兵模式之外:主从模式还是比较普遍的. 配置 redis 多主从:由 keepalived 做 VIP 地址漂移.可以实现redis的高可用性. keepa ...
- keepalived高可用集群。
keepalived故障切换转移原理1vrrp协议:(vritual router redundancy protocol)虚拟路由冗余协议,2故障转移.keepalived三大功能1实现物理高可用, ...
- Linux系统——Keepalived高可用集群
#### keepalived服务的三个重要功能1. 管理LVS负载均衡软件Keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动,停止功能,这使得 ...
- Nginx入门篇(七)之Nginx+keepalived高可用集群
一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...
- Linux实战教学笔记31:Keepalived高可用集群应用实践
1.1 Keepalived高可用软件 1.1.1 Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入 ...
- 企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇
1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...
随机推荐
- 描述一下 JVM 加载 class 文件的原理机制?
JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的 类加载器是一个重要的 Java 运行时系统组件,它负责在运行时查找和装入类文件 中的类. 由于 Java 的 ...
- C++11最常用的新特性如下
1.auto关键字:编译器可以根据初始值自动推导出类型.但是不能用于函数传参.定义数组以及非静态成员变量. 2.nullptr关键字:是一种特殊类型的字面值,它可以被转换成任意其它类型的指针:而NUL ...
- solr服务的搭建
首先你需要一台已经搭建好的虚拟机,下面的步骤才可以执行 安装java 安装完Centos6.5的Base Server版会默认安装OpenJDK,首先需要删除OpenJDK 1.查看以前是不是安装了o ...
- 学习Nginx(三)
nginx的性能测试及常用优化手段 一.nginx的性能测试及对比 1.环境准备 [root@test8_hadoop_kaf ~]# yum install -y httpd-tools [ro ...
- 智能指针中C++重载'->'符号是怎么实现的
例如下面的代码: class StrPtr{ public: StrPtr() : _ptr(nullptr){} //拷贝构造函数等省略... std::string* operator->( ...
- stm32CubeMX+keil5好用还是stm32CubeID好用
cubemx是图形配置软件, 可以节省往常配置IO口的时间, cubemx主推hal库, 它是生成keil工程的工具 cubemx生成的工程可以用keilv5编程软件来编辑... 用Cube mx定义 ...
- 如何用vue打造一个移动端音乐播放器
写在前面 没错,这就是慕课网上的那个vue音乐播放器,后台是某音乐播放器的线上接口扒取,虽然这类项目写的人很多,但不得不说这还是个少有的适合vue提升的好项目,做这个项目除了想写一个比较大并且功能复杂 ...
- JavaScript操作select下拉框选项移动
运行结果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- animate.css使用
解决 使用jquery单纯添加类不能出现动画 使用jQuery向元素中添加类制作动画的时候,需要使用setTimeout实现,因为动画需要从一个状态到另外一个状态!时间设置为0
- JavaScript中数组的方法和字符串方法总结
数组是首先的一个对象, 可以通过Array构造器创建一个数组,数组方法总结如下 cacat() 链接两个数组 join() 将数组链接成字符串 pop() 删除最后一个元素 shift() 删 ...