高可用—Keepalived安装部署使用详解
关注微信公众号:CodingTechWork,一起学习进步。
keepalived介绍
keepalived是基于VRRP
(Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)协议实现的LVS
(LinuxVirtual Server ,Linux虚拟服务器)服务高可用方案。主要提供了负载均衡和高可用功能,用来避免单点故障。负载均衡是通过linux的IPVS(ip虚拟服务器)实现,高可用通过VRRP实现多机故障转移。
keepalived一般是2个节点运行keepalived,一台是主节点(MASTER
),一台是备节点(BACKUP)
,对外
表现都是一个虚拟IP
,主节点会发送特定的消息给备节点,如果备节点收不到这个特定消息时,说明主节点就宕机
了,此时备节点就会接管虚拟IP
进行服务提供,这就实现了高可用。
keepalived使用架构图
将keepalived和nginx部署在一台服务器。
keepalived高可用故障切换转移
keepalived是基于VRRP协议来实现高可用的,有两种模式,一种是抢占模式
(默认使用),另一种是非抢占模式
,需配置nopreempt
,在后面的keepalived配置文件详解中我们会讲到。当使用抢占模式
的时候,这是一种竞选机制
进行通信,主节点优先级大于备节点优先级
。当主节点宕机的时候,可以切到备节点进行提供服务。
抢占模式原理
如下:
- keepalived正常工作的时候,MASTER主节点会向BACKUP备节点不断的发送特定消息(
多播心跳消息
),就是一种健康检查机制
,告诉备节点“我还活着,虚拟IP我来管就行了!
”。 - 当主节点发生故障出现宕机情况的时候,无法向备节点发送心跳信息,备节点无法收到主节点的健康检查心跳信息,这个时候,备节点终于转正了,机会来了,就接管虚拟IP进行服务提供。
- 当主节点故障恢复后,又不断的发送心跳给备节点,告知“
我现在活着呢,我来管虚拟IP
”,备节点就会释放
主节点宕机时所接管的IP资源以及服务
,默默的做回一个备胎
。
keepalived安装部署
yum安装keepalived
$ yum install -y keepalived
查看keepalived版本
[root@keepalived /etc/keepalived]# keepalived -v
Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2Copyright(C) 2001-2017 Alexandre Cassen, <acassen@gmail.com>Build options: PIPE2 LIBNL3 RTA_ENCAP RTA_EXPIRES RTA_PREF FRA_OIFNAME FRA_SUPPRESS_PREFIXLEN FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK LIBIPTC LIBIPSET_DYNAMIC LVS LIBIPVS_NETLINK VRRP VRRP_AUTH VRRP_VMAC SOCK_NONBLOCK SOCK_CLOEXEC FIB_ROUTING INET6_ADDR_GEN_MODE SNMP_V3_FOR_V2 SNMP SNMP_KEEPALIVED SNMP_CHECKER SNMP_RFC SNMP_RFCV2 SNMP_RFCV3 SO_MARK
更改keepalived配置
$ cd /etc/keepalived
$ vim keepalived.conf
主要修改分配的虚拟ip地址等配置。
启动keepalived
$ systemctl start keepalived.service
或者 $ service keepalived start
其他相关命令
1)重启:
$ systemctl restart keepalived.service
2)停止:
$ systemctl stop keepalived.service
3)状态:
$ systemctl status keepalived.service
4)设置开机启动:
$ chkconfig keepalived on
查看keepalived状态
$ systemctl status keepalived.service
查看keepalived进程
$ ps -ef | grep keepalived
查看ip列表
$ ip add show
访问
配置好keepalived启动后,我们就可以通过10.139.1.1这个VIP进行服务的访问。
keepalived高可用配置文件详解
主节点
! Configuration File for keepalivedglobal_defs {# notification_email { # 邮件通知,一般不用# test1@163.com# test2@163.com# }# notification_email_from test@163.comrouter_id hostname1 # 标识本节点的字符串,设置为hostname即可
}vrrp_instance VI_1 {state MASTER # 标识主节点服务(只有MASTER和BACKUP两种,大写)interface eth0 # VIP板顶的网卡接口virtual_router_id 51 # 虚拟路由id,和备节点保持一致priority 100 # 优先级,高于备节点的即可。# nopreempt # 禁止MASTER宕机恢复后抢占服务# smtp_alert # 激活故障时发送邮件告警mcast_src_ip 10.139.1.10 # 本机IP地址advert_int 1 # MASTER和BACKUP节点之间的同步检查时间间隔,单位为秒authentication { # 验证类型和验证密码auth_type PASS # PAAS(默认),HAauth_pass 1111 # MASTER和BACKUP使用相同明文才可以互通}virtual_ipaddress { # 虚拟IP地址池,可以多个IP10.139.1.1 # 虚拟IP1(VIP)10.139.1.2 # 虚拟IP2(VIP)}
}
备节点
除了注释#以外,其他都和主节点保持一致。
! Configuration File for keepalivedglobal_defs {router_id hostname2 # 标识本节点的字符串,设置为hostname即可
}vrrp_instance VI_1 {state BACKUP # 标识主节点服务(只有MASTER和BACKUP两种,大写)interface eth0 virtual_router_id 51 priority 99 # 优先级,高于备节点的即可。mcast_src_ip 10.139.1.11 # 本机IP地址advert_int 1 authentication { auth_type PASS auth_pass 1111 }virtual_ipaddress { 10.139.1.110.139.1.2 }
}
高可用—Keepalived安装部署使用详解相关推荐
- keepalived安装及配置文件详解
一.安装Keepalived服务 两种安装方式: (1)yum方式安装 yum -y install keepalived# 查看安装路径 rpm -ql keepalived (2)源码安装 1)安 ...
- centos 安装mysql5.7_Zabbix 4.2.5 安装部署实践详解
[导读]云计算背景下,无论是大数据.物联网还是边缘计算,规模化后大量的设备需要保证正常运行,在人员一定的情况下,就需要提高运行维护效率.同时随着智能化被应用在人们生活的方方面面,关联性也越来越紧密,即 ...
- Zabbix 4.2.5 安装部署实践详解
一.安装 1.安装CentOS操作系统,并配置网络 2.安装Zabbix官方源 rpm -ivh http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zab ...
- Redis基础与高可用集群架构进阶详解
一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...
- 使用HeartBeat实现高可用HA的配置过程详解
一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...
- linux高可用集群(HA)原理详解
高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...
- Redis缓存高可用集群哨兵模式详解
单机Redis服务器环境下,如果服务器宕机就会造成无法挽回的损失.于是就出现了主从架构的Redis服务器,从节点slave服务器并不对外提供服务,只是将数据定期从主节点master服务器上同步过来,此 ...
- 构建高可用服务器之 Keepalive参数详解
keepalived有三类配置区域,注意不是三种配置文件,是一个配置文件里面三种不同类别的配置区域, 全局配置(Global Configuration).VRRPD配置.LVS配置! Configu ...
- 【Redis】Redis高可用之Sentinel哨兵模式详解(Redis专栏启动)
最新文章
- C++拓展笔记2-3:C++中this指针用法简介
- python培训班有用吗-Python培训班哪家好?
- 网络安全netstat监听网络状态。
- ubuntu中安装hadoop集群
- [OS复习]操作系统综述1
- 新手学python书籍推荐_新手学python看哪本书
- 3- 快速上手Linux玩转典型应用- Linux准备工作
- 【渝粤题库】国家开放大学2021春1334纳税筹划题目
- 以容器为代表的云原生技术,正成为释放云价值最短路径
- oracle mysql 数据类型对比_Oracle、SQL Server、MySQL数据类型对比
- java培训学费_太原java培训班价格表
- 强大的RSS阅读器 Reeder 4 for Mac 4.1.1
- postman下载文件乱码
- gre作文3.5什么水平计算机专业,gre作文3.5分如何达到
- LSTM实现情感分类
- 在线作图丨微生物分析——alpha多样性指数分析
- 基于SSM纺织品公司订单管理系统
- vue实现用户登录验证 + 权限验证 + 动态路由(左侧菜单栏)
- [Power Query] 分组依据
- idea自动生成bean实体对象
热门文章
- C++:new[]和delete[]一定要配对使用吗?
- 白嫖船长几节课(2)
- 使用EndNote X9引用参考文献并在Word中修改生成的引文格式(编号、字体大小)GBT7714(numeric)
- U-GAT-IT 论文阅读
- Python enumerate() 函数
- 为什么要使用 zero_grad()?
- linux操作常用命令
- phpcmsV9留言插件提交后返回上一页实现方法
- java安卓原生影视APP源码 对接苹果cms后台
- python僵尸进程和孤儿进程_进程3.0——进程状态与僵尸进程、孤儿进程