keepalived实现高可用(代码片段)

golinux golinux     2022-12-16     139

关键词:

一.keepalived是什么

keepalived最初是为LVS负载均衡设计的,用于监控LVS集群系统中的各个节点的服务状态。后来又加入了基于VRRP的高可用功能,所以也可以作为nginx,mysql等服务的高可用解决方案使用。

VRRP(Virtual Router Redundancy Protocol)即虚拟路由冗余协议,VRRP的出现是为了解决静态路由单点故障问题的,当网络中的某一个节点挂掉时,可以保证路由的正常运行。

二.keepalived的组成和原理

技术图片

WatchDog:负责监控Checkers,VRRP进程的状态,当checkers或VRRP进程被杀掉时,可以启动一个新的进程来工作

Checkers:负责检查真实节点的健康状态,是keepalived的最主要功能。

VRRP Stack:负责master挂掉后的故障切换,保证服务的连续性,减少服务的不可用时间,当只有一个节点提供服务时,该进程可以不需要

IPVS wrapper:用户发送设定的规则到内核ipvs代码

Netlink Reflector:用来设定vrrp的vip地址等。

keepalived的原理

使用keepalived进行VIP的实现。

虚拟路由冗余协议, 可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

 三.安装配置keepalived

我使用的时centos6.9系统,直接安装自带的keepalived

yum -y install keepalived

相关文件如下

/etc/keepalived    
/etc/keepalived/keepalived.conf     #keepalived服务主配置文件
/etc/rc.d/init.d/keepalived         #服务启动脚本

keepalived的运行日志默认存放在/var/log/messages

四.搭建高可用

(1)准备两台主机,一台master主服务器(192.168.211.113),一台backup备用服务器(192.168.211.112),在两台服务器上都安装keepalived

(2)修改配置文件

master主机

vrrp_script check_nginx     # 自定义脚本check_nginx.sh,当nginx挂掉时,停掉keepalived,使虚拟IP切换到备机
    script /etc/keepalived/check_nginx.sh  # 执行check_nginx.sh脚本
    interval 3  # 每3s执行一次

vrrp_instance VI_1 
    state MASTER  # 标识为master
    interface eth0  # 虚拟ip绑定网卡名称
    virtual_router_id 51  # 虚拟路由id,同一组中所有的服务器需要保持一致
    nopreempt
    priority 100  # 优先级,默认越大优先级越高
    advert_int 1
    authentication   #鉴权配置
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress   # 自定义虚拟ip,不能冲突
        192.168.211.201
    
    track_script   # 跟踪执行的脚本
        check_nginx
    
    unicast_src_ip 192.168.211.113   #发送单播消息的源ip
    unicast_peer 
        192.168.211.112  # 发送单播消息的目的IP
    

 backup主机

vrrp_script check_nginx     # 自定义脚本check_nginx.sh,当nginx挂掉时,停掉keepalived,使虚拟IP切换到备机
    script /etc/keepalived/check_nginx.sh  # 执行check_nginx.sh脚本
    interval 3  # 每3s执行一次

vrrp_instance VI_1 
    state BACKUP  # 标识为BACKUP
    interface eth0  # 虚拟ip绑定网卡名称
    virtual_router_id 51  # 虚拟路由id,同一组中所有的服务器需要保持一致
    nopreempt
    priority 100  # 优先级,默认越大优先级越高
    advert_int 1
    authentication   #鉴权配置
        auth_type PASS
        auth_pass 1111
    
    virtual_ipaddress   # 自定义虚拟ip,不能冲突
        192.168.211.201
    
    track_script   # 跟踪执行的脚本
        check_nginx
    
    unicast_src_ip 192.168.211.112   #设置发送单播消息的源ip
    unicast_peer 
        192.168.211.113  # 设置发送单播消息的目的IP
    
/etc/keepalived/check_nginx.sh内容如下,当nginx挂掉时,停掉keepalived,此时虚拟ip会自动切换
 #!/bin/bash
  
  nginx_status=$(netstat -ntlp|grep :80|wc -l)
  if [ $nginx_status -eq 0 ];then
          service keepalived stop
  fi

(3)启动两台服务器上的keepalived

直接直接keepalived命令即可,一般虚拟ip会挂在先启动的那台服务器上

查看虚拟ip如下

master主机(192.168.211.113)上

技术图片

backup主机(192.168.211.112)上

 技术图片

 停掉master主机(192.168.211.113)上的nginx

[[email protected] ~]# service nginx stop

查看此时master上的IP信息

技术图片

backup主机(192.168.211.112)上ip信息

技术图片

可以看到此时虚拟IP已经切换到backuo主机上

 

keepalived实现服务高可用(代码片段)

环境说明系统:centos7.4软件:keepalived:1.3.5nginx:1.12.2tcpdump工具主机:192.168.9.222192.168.9.223vip地址:192.168.9.151keepalived说明  Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是VirtualRouterRedundancyProtocol(虚拟路 查看详情

keepalived高可用搭建(代码片段)

-[1.keepalived简介##](#1-keepalived-简介-)-[1.keepalived](#1-keepalived)-[2.安装keepalived](#2-安装keepalived)-[2.keepalived高可用配置##](#2-keepalived-高可用配置-)-[1.安装keepalived](#1-安装keepalived)-[2.配置keepalived以实现虚 查看详情

haproxy+keepalived实现mycat高可用(代码片段)

...,需要考虑Mycat集群。高可用方案:我们可以使用HAProxy+Keepalived配合两台Mycat搭起Mycat集群,实现高可用性。HAProxy实现了Mycat多节点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现。Mycat 查看详情

haproxy+keepalived实现mycat高可用(代码片段)

...,需要考虑Mycat集群。高可用方案:我们可以使用HAProxy+Keepalived配合两台Mycat搭起Mycat集群,实现高可用性。HAProxy实现了Mycat多节点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现。所需环境: 查看详情

nginx利用keepalived实现高可用的配置(代码片段)

文章目录高可用性(HighAvailability)作用一、keepalived是什么?二、利用keepalived实现高可用的配置1.将两台服务器都配置负载均衡功能2.安装配置keepalived软件3.两台负载均衡器启动keepalived4.查看ip地址,看高可用是否... 查看详情

集群介绍keepalived介绍用keepalived配置高可用集群(代码片段)

集群介绍keepalived介绍用keepalived配置高可用集群keepalived他需要包含一个服务,比如这个服务用来实现高可用,最早讲述集群的时候一个角色可能存在单点故障,如果这个服务当机就有问题了,现在想让这个服务高可用就得用一个... 查看详情

25.keepalived高可用(代码片段)

Keepalived高可用基本概述什么是高可用一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。高可用通常使用什么软件?硬件通常使用F5软件通常使用k... 查看详情

keepalived实现高可用(代码片段)

一.keepalived是什么keepalived最初是为LVS负载均衡设计的,用于监控LVS集群系统中的各个节点的服务状态。后来又加入了基于VRRP的高可用功能,所以也可以作为nginx,mysql等服务的高可用解决方案使用。VRRP(VirtualRouterRedundancyProtocol)即... 查看详情

keepalived高可用(代码片段)

文章目录keepalivedkeepalived是什么?keepalived的重要功能keepalived高可用故障转移的原理keepalived原理keepalived高可用架构图keepalived工作原理描述keepalived默认配置文件keepalived实现apache在LVS均衡负载上的高可用实例配置LVS配置keepalived... 查看详情

keepalived高可用集群(代码片段)

一、Keepalived介绍Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例... 查看详情

keepalived高可用(代码片段)

keepalived介绍在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果keepalived通过VRRP(VirtualRouterRedundancyProtocl)来实现高可用。在这个协议里会将多台功能相同的路由器组成一个小组,这个小... 查看详情

keepalived高可用集群(代码片段)

介绍Keepalived软件起初是专门为LVS负载均衡软件设计的用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软... 查看详情

keepalived实现服务高可用(代码片段)

keepalived实现服务高可用  第1章keepalived服务说明1.1keepalived是什么?  Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,... 查看详情

keepalived高可用集群(代码片段)

 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Hapr... 查看详情

lvs+keepalived实现高可用(代码片段)

...求转发给故障的rs服务器,这样就会导致请求的无效性。keepalive软件可以进行健康检查,而且能同时实现LVS的高可用性,解决LVS单点故障的问题,其实keepalive就是为LVS而生的。LVS-DR+Keepalived一、实验环境:Keepalived1+lvs1(Director1):19... 查看详情

keepalived高可用(代码片段)

...1.3高可用是如何实现的1.4VRRP诞生背景及原理二、高可用Keepalived2.1Keeplaived基本介绍2.2Keepalived核心概念2.3Keeplaived应用场景2.4Keeplaived安装配置2.4.1配置Master2.4.2配置Backup2.4.3地址漂移测试2.5Keepalived延迟抢占2.6 查看详情

haproxy+keepalived实现高可用(代码片段)

Haproxy通过结合Keepalived实现负载均衡器节点的高可用环境介绍:CentOS6.5平台Haproxy1:10.10.10.128/24Haproxy2:10.10.10.129/24web1:10.10.10.130/24web2:10.10.10.131/24VIP:10.10.10.100/24部署前准备:1、时间同步:ntpdatentp1.aliyun.com2、防火墙策略: 查看详情

keepalived高可用集群。(代码片段)

Keepalived高可用集群 Keepalived介绍Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以... 查看详情