欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【keepalived】keepalived简介及配置文件详解

程序员文章站 2024-03-21 09:11:58
...

一、是什么

     keepalived是集群管理中保证集群高可用的一个服务软件,它的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后,自动将web服务器加入到服务器集群中。解决了静态路由的单点故障问题。

二、工作原理

     keepalived是以VRRP协议为实现基础的,VRRP全程Virtual Router Redundancy Protocol ,即虚拟路由冗余协议。

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

      keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护、以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。。

三、配置文件

      keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、

vrrp_script、vrrp_instance和virtual_server.

1、global_defs区域

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

 

global_defs {
   notification_email {
     aaa@qq.com
     aaa@qq.com
     aaa@qq.com
   }
   notification_email_from aaa@qq.com
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id 192.168.224.206
   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(Simple Network Management Protocol)陷阱
  • router_id 标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到

2、vrrp_script区域

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

vrrp_script chk_nginx {
       script "/usr/local/keepalived-1.3.4/nginx_check.sh"
       interval 2 
       weight -20
}

   script:自己写的监测脚本。

   interval 2:每2s监测一次

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

3、vrrp_instance 

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    mcast_src_ip 192.168.224.206
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.224.208
    }
    track_script{
    chk_nginx
  }
}

state:只有BACKUP和MASTER。MASTER为工作状态,BACKUP是备用状态

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

【keepalived】keepalived简介及配置文件详解

virtual_router_id:虚拟路由标志。同组的virtual_router_id应该保持一致。它将决定多播的MAC地址。

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

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

virtual_ipaddress:这就是传说中的虚拟ip

相关标签: keepalived