keepalived是集群管理中保证集群高可用的服务软件,高可用 High Available
1.需要心跳机制探测后端RS是否提供服务。
a) 探测down,需要从lvs中删除该RS
b) 探测发送从down到up,需要从lvs中再次添加RS。
2.Lvs DR,需要主备
keepalived原理:
VRRP协议(虚拟路由冗余协议) - Virtual Router Redundancy Protocol
IP漂移
搭配keepalived前提:需要几台RS(真实后端服务器),一台主的lvs负载均衡服务器,一台备用lvs服务器,使用虚拟机替代,即准备几台虚拟机node1,node2,node3,node4
node1为主的lvs
node2和node3为RS,
node4为备用的lvs
RS的搭配在另一篇文章中已经说过了,这里就不再说明,下面主要是讲一下主备lvs下配置keepalived
首先
在node1和node4下下载keepalived,ipvsadm可以安装也可以不安装
yum install keepalived
编辑/etc/keepalived目录下的keepalived.conf文件,首先需要拷贝一份。
cp keepalived.conf keepalived.conf.bak
进入编辑页面,并进行编辑
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc #发送提醒邮件的目标地址,可以有多个
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #发送邮件的from地址,可以随意写,邮件地址无所谓
smtp_server 127.0.0.1 #邮件服务地址,一般写本地
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#虚拟路由冗余协议vrrp的配置
vrrp_instance VI_1 {
state MASTER #MASTER主,BACKUP为从,即声明为MASTER时为主的服务器,声明为BACKUP时为备用服务器
interface eth0
virtual_router_id 51
priority 100 #优先级,主的优先级高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.163.100/24 dev eth0 label etho:2 #设置VIP(虚拟服务器地址
)
}
}
virtual_server 192.168.163.100 80 { #设置虚拟lvs服务 ,VIP PORT
delay_loop 6
lb_algo rr #调度算法
lb_kind DR #lvs的模式
nat_mask 255.255.255.0
persistence_timeout 0 # 同一个IP地址在多长时间内lvs转发给同一个后端服务器
protocol TCP
real_server 192.168.163.22 80 { #设置真实服务器的心跳机制 ,可以配置多个真实服务器的心跳机制
weight 1 #权重
SSL_GET {
url {
path / #心跳检测地址
status_code 200 #心跳检测返回的状态
}
connect_timeout 3 #超时时间
nb_get_retry 3 #重复检查3次
delay_before_retry 3 #每个多少秒再次检查
}
}
real_server 192.168.163.23 80 { #设置真实服务器的心跳机制 ,可以配置多个真实服务器的心跳机制
weight 1 #权重
SSL_GET {
url {
path / #心跳检测地址
status_code 200 #心跳检测返回的状态
}
connect_timeout 3 #超时时间
nb_get_retry 3 #重复检查3次
delay_before_retry 3 #每个多少秒再次检查
}
}
}
#下面的内容可以删除
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.200.200 1358
real_server 192.168.200.2 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.3 1358 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.200.4 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.5 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
备用的lvs服务器中进行同上述一样的配置,但是keepalived.conf文件中需要将 state MASTER改为BACKUP,且将优先级低于主lvs服务器的优先级