Keepalive 高可用环境详解

本文详细介绍了Keepalived的高可用原理,特别是其通过VRRP协议进行故障切换的过程。同时,文章提供了利用Keepalived配合Nginx在两台服务器上搭建高可用环境的步骤,包括配置文件设置、健康检查脚本以及服务启动。当主服务器的Nginx服务关闭时,VIP会自动漂移到备用服务器,确保服务不间断。
摘要由CSDN通过智能技术生成

前言

本篇文章主要介绍keepalive的高可用实现原理,以及keepalive配合Nginx实现高可用环境的详细过程。

keepalive原理

简介

Keepalived软件主要通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行。keepalived除了能够管理LVS软件外,还可以作为其他服务(Nginx,Haproxy、MySQL等)的高可用解决方案软件。

主要功能

  • 管理LVS负载均衡软件
  • 实现对LVS集群节点健康检查的功能
  • 作为系统网络服务的高可用功能

keepalive作为高可用故障切换转移原理

在Keppalived服务正常工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的IP资源及服务。而当主Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

VRRP,全称Virtual Router Redundancy Protocol,虚拟路由冗余协议,VRRP的出现就是为了解决静态路由的单点故障问题,VRRP是通过一种竞选机制来将路由任务交给某台VRRP路由器的。

在一组虚拟路由器中,只有作为Master的VRRP路由器会一直发送VRRP广播包(VRRP Advertisement messages),此时Backup不会抢占Master。当Master不可用时,Backup就收不到来自Master的广播包了,此时多台Backup中优先级最高的路由器会抢占为Master。这种抢占非常快速的,以保证服务的连续性,处于安全性考虑,VRRP数据包使用了加密协议进行加密。

总结就是下面五句话:
(1)VRRP,全称:Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
(2)VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的
(3)VRRP是IP多播的方式,实现高可用对之间的通信。
(4)工作时主节点发包,备节点接包,当备节点接受不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。
(5)VRRP使用了加密协议加密数据,但keepalived官方目前还是推荐用明文的方式配置认证类型和密码

keepalive高可用环境搭建

环境准备

两台服务器(10.11.130.194,10.11.130.196)
web服务:10.11.130.194:8080,10.11.130.196:8080 (步骤忽略)
Nginx服务:10.11.130.194:8989,10.11.130.196:8989(步骤忽略)
VIP:10.11.130.192
keepalive 安装包

安装

解压keepalive的安装包,或安装rpm包,处理相关依赖

进入 /etc/keepalived,修改下面的配置文件keepalived.conf:

global_defs {
    router_id cs_196
}
vrrp_script check_run {
    script "/opt/itxkp/sbin/nginx_check.sh"  #检测的脚本
    interval 5
}
vrrp_sync_group VG1 {
     group {
        VI_1
     }
}
vrrp_instance VI_1 {
     state MASTER  #设置主从,MASTER为主,BACKUP为从
     interface p4p1 # 网卡
     virtual_router_id 100  #主从一定要一样
     priority 100
     advert_int 1
     nopreempt
     authentication {
         auth_type PASS
         auth_pass 123456
     }
     track_script {
         check_run   #检测的脚本
     }
     virtual_ipaddress {
         10.11.130.192  #虚拟ip
     }
}
  1. keepalived.conf 需要赋权664,命令为:chomd 664 keepalived.conf
  2. 其中 /opt/itxkp/sbin/nginx_check.sh 的脚本为健康检测脚本(可百度搜),没有的话 可以创建,需要赋权 777,否则会报错:configure is not a regular non-executable file , 赋权命令:chomd 777 nginx_check.sh
  3. 配置完成,启动服务 systemctl start keepalived.service
  4. 通过 ip addr 命令,可以查看 是否配置成功;

在这里插入图片描述

  1. 浏览器访问:10.11.130.192:8989
    在这里插入图片描述

  2. 另外一台服务(10.11.130.196)安装过程同理 ,除了网卡、state 不通外,其他都相同;

  3. 如果将194的Nginx的服务关掉,该VIP会自动飘移至另外一台196上面, ip addr 可以查看;
    在这里插入图片描述

  4. 浏览器再次访问:10.11.130.192:8989时,此次页面为196提供的服务;可通过 /var/log/message 文件查看keepalive的日志信息;
    在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值