关注微信公众号: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配置文件详解中我们会讲到。当使用抢占模式的时候,这是一种竞选机制进行通信,主节点优先级大于备节点优先级。当主节点宕机的时候,可以切到备节点进行提供服务。

抢占模式原理如下

  1. keepalived正常工作的时候,MASTER主节点会向BACKUP备节点不断的发送特定消息(多播心跳消息),就是一种健康检查机制,告诉备节点“我还活着,虚拟IP我来管就行了!”。
  2. 当主节点发生故障出现宕机情况的时候,无法向备节点发送心跳信息,备节点无法收到主节点的健康检查心跳信息,这个时候,备节点终于转正了,机会来了,就接管虚拟IP进行服务提供。
  3. 当主节点故障恢复后,又不断的发送心跳给备节点,告知“我现在活着呢,我来管虚拟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安装部署使用详解相关推荐

  1. keepalived安装及配置文件详解

    一.安装Keepalived服务 两种安装方式: (1)yum方式安装 yum -y install keepalived# 查看安装路径 rpm -ql keepalived (2)源码安装 1)安 ...

  2. centos 安装mysql5.7_Zabbix 4.2.5 安装部署实践详解

    [导读]云计算背景下,无论是大数据.物联网还是边缘计算,规模化后大量的设备需要保证正常运行,在人员一定的情况下,就需要提高运行维护效率.同时随着智能化被应用在人们生活的方方面面,关联性也越来越紧密,即 ...

  3. Zabbix 4.2.5 安装部署实践详解

    一.安装 1.安装CentOS操作系统,并配置网络 2.安装Zabbix官方源 rpm -ivh http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zab ...

  4. Redis基础与高可用集群架构进阶详解

    一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...

  5. 使用HeartBeat实现高可用HA的配置过程详解

    一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...

  6. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  7. Redis缓存高可用集群哨兵模式详解

    单机Redis服务器环境下,如果服务器宕机就会造成无法挽回的损失.于是就出现了主从架构的Redis服务器,从节点slave服务器并不对外提供服务,只是将数据定期从主节点master服务器上同步过来,此 ...

  8. 构建高可用服务器之 Keepalive参数详解

    keepalived有三类配置区域,注意不是三种配置文件,是一个配置文件里面三种不同类别的配置区域, 全局配置(Global Configuration).VRRPD配置.LVS配置! Configu ...

  9. 【Redis】Redis高可用之Sentinel哨兵模式详解(Redis专栏启动)

最新文章

  1. C++拓展笔记2-3:C++中this指针用法简介
  2. python培训班有用吗-Python培训班哪家好?
  3. 网络安全netstat监听网络状态。
  4. ubuntu中安装hadoop集群
  5. [OS复习]操作系统综述1
  6. 新手学python书籍推荐_新手学python看哪本书
  7. 3- 快速上手Linux玩转典型应用- Linux准备工作
  8. 【渝粤题库】国家开放大学2021春1334纳税筹划题目
  9. 以容器为代表的云原生技术,正成为释放云价值最短路径
  10. oracle mysql 数据类型对比_Oracle、SQL Server、MySQL数据类型对比
  11. java培训学费_太原java培训班价格表
  12. 强大的RSS阅读器 Reeder 4 for Mac 4.1.1
  13. postman下载文件乱码
  14. gre作文3.5什么水平计算机专业,gre作文3.5分如何达到
  15. LSTM实现情感分类
  16. 在线作图丨微生物分析——alpha多样性指数分析
  17. 基于SSM纺织品公司订单管理系统
  18. vue实现用户登录验证 + 权限验证 + 动态路由(左侧菜单栏)
  19. [Power Query] 分组依据
  20. idea自动生成bean实体对象

热门文章

  1. C++:new[]和delete[]一定要配对使用吗?
  2. 白嫖船长几节课(2)
  3. 使用EndNote X9引用参考文献并在Word中修改生成的引文格式(编号、字体大小)GBT7714(numeric)
  4. U-GAT-IT 论文阅读
  5. Python enumerate() 函数
  6. 为什么要使用 zero_grad()?
  7. linux操作常用命令
  8. phpcmsV9留言插件提交后返回上一页实现方法
  9. java安卓原生影视APP源码 对接苹果cms后台
  10. python僵尸进程和孤儿进程_进程3.0——进程状态与僵尸进程、孤儿进程