1.Keepalived简介
Keepalived是linux下一个轻量级别的高可用解决方案。高可用:广义来讲,是指整个系统的高可用行;狭义的来讲就是主机的冗余和接管。
Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成
2.keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全程 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是core、check和vrrp。
core模块:keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
check:负责健康检查,包括常见的各种检查方式。
vrrp模块:实现VRRP协议的。
3.配置文件
global_defs {
notification_email {
root@localhost #定义接收警告的人
}
notification_email_from root@localhost # 定义发邮件地址 (实际上没用)
smtp_server 172.0.0.1 # 定义发邮件地址,若为127.0.0.1则使用本机自带邮件服务的脚本
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#vrrp_script # 自定义名字,后面还会用到它
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER # 角色为master,备份机的为BACKUP
interface eth0 # 针对哪个网卡监听VIP
virtual_router_id 51
priority 100 # 权重为100,master要比backup大
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 # 定义密码,这个密码自定义
}
virtual_ipaddress {
172.25.73.100 # 定义VIP
}
}
virtual_server 172.25.73.100 80 {
delay_loop 6 #健康检查的时间间隔
lb_algo rr #LVS调度算法
lb_kind DR #LVS模式
#persistence_timeout 50 #持久化超时时间,单位是秒。默认是6分钟
protocol TCP #4层协议(TCP|UDP|SCTP)
real_server 172.25.73.2 80 {
weight 1 #给服务器指定权重。默认是1
TCP_CHECK { #real_server中的健康检查
connect_timeout 3 #连接超时时间。默认是5s
nb_get_retry 3 #get尝试次数
delay_before_retry 3 #在尝试之前延迟多长时间
}
}
real_server 172.25.73.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
4.实验
安装ipvsadm和keepalived都主均衡器和备份机
修改配置文件
主均衡器
备用机
删除真机网络
ip addr del 172.25.73.100/24 dev eth0
:删除之前添加的VIP
ipvsadm -C
:删除原有的ipvsadm规则
测试
主调度器