目录
1、Haproxy_Director(分发器)+Keepalived
一、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主要有三个模块:
-
core模块:为keepalived的核心,负责进程的启动,维护,以及全局配置文件的加载和解析。
-
check模块:负责健康检查,包括常见的各种检查方式。
-
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