Linux学习:Keepalived高可用集群

本文详细介绍了Linux的Keepalived服务,用于实现服务器集群的高可用性。通过VRRP协议,Keepalived确保在主服务器故障时自动切换到备份服务器。文章涵盖了Keepalived的工作原理,配置文件解析,以及结合Haproxy和Nginx的实战项目,包括负载均衡、健康检查和故障转移测试。
摘要由CSDN通过智能技术生成

目录

一、Keepalived简介

二、keepalived工作原理

三、keepalived配置文件

1、global_defs 区域

2、vrrp_script区域

3、vrrp_instance区域

四、keepalived实战项目

1、Haproxy_Director(分发器)+Keepalived

(1)haproxy负载均衡

(2)keepalived实现调度器HA

(3)master服务器宕机测试

(4)对调度器Haproxy的健康检查(扩展)

​2、Nginx_director+Keepalived

(1)nginx负载均衡

(2)keepalived实现调度器HA

(3)master服务器宕机测试

(4)对调度器nginx健康检查


一、Keepalived简介

keepalived是集群管理中保证集群高可用的一个服务软件,它的作用是检测web服务器的状态。

如果有一台服务器死机,或工作出现故障,keepalived将检测到,并将有故障的服务器从系统中剔除,当web服务器工作正常后,自动将web服务器加入到服务器集群中。解决了静态路由的单点故障问题。

二、keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称(Virtual Router Redundancy Protocol),即虚拟路由冗余协议。实现路由器高可用的协议。

N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip,master不断向backup发送心跳信息,告诉backup自己还活着,当backup收不到心跳的时候就认为master已经宕机,就需要根据VRRP的优先级来选举一个backup当master,从而保证高可用。

keepalived主要有三个模块:

  1. core模块:为keepalived的核心,负责进程的启动,维护,以及全局配置文件的加载和解析。

  2. check模块:负责健康检查,包括常见的各种检查方式。

  3. vrrp模块:是实现VRRP协议的。

三、keepalived配置文件

keepalived配置文件:keepalived.conf。里面主要包括以下几个配置区域,分别是:

  • global_defs 全局配置

  • static_ipaddress 静态路由配置

  • vrrp_script 检测脚本

  • vrrp_instance 定义高可用相关的配置

  • virtual_server 定义配置服务器

1、global_defs 区域

主要是配置故障发生时的通知对象以及机器标志

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
  • notification_email:故障发生时给谁发邮件通知

  • notification_email_from:通知邮件从哪个地址发出

  • smtp_server:通知邮件的smtp地址

  • smtp_connect_timeout:连接smtp服务器的超时时间

  • enable_traps:开启SNMP陷阱

  • router_id:标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到

2、vrrp_script区域

用来做健康检查的,当检查失败时会将vrrp_instance的priority减少相应的值。

vrrp_script check_haproxy {
        script "/etc/keepalived/check_haproxy_status.sh"
        interval 5
        weight  -20
}
  • script:自己写的的监测脚本

  • interval 5:每5s监测一次

  • weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点

3、vrrp_instance区域

定义当前服务器的内容

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
    }
     track_script {
        check_haproxy
        }
}
  • state:只有MASTER和BACKUP。MASTER为工作状态,BACKUP是备用状态。

  • interface:网卡接口,可通过ip addr查看自己的网卡接口。

  • virtual_router_id :虚拟路由标志,同组的virtual_router_id 应保持一致,它决定多播的mac地址

  • priority:设置本节点的优先级,优先级高的为master

  • advert_int:MASTER和BACKUP同步检查的时间间隔

  • virtual_ipaddress:虚拟ip

四、keepalived实战项目

1、Haproxy_Director(分发器)+Keepalived

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值