简单实现keepalived
前言:Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。准备工作:
yum install keepalived httpd
iptable -F
setenforce 0
实验:高可用的ipvs集群示例
vim/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost # 邮箱
}
notification_email_fromkeepalived@localhost# 邮箱
smtp_server 127.0.0.1 # smtp服务
smtp_connect_timeout 30# 延时
router_idxdg1 # 路由标识
vrrp_mcast_group4224.100.100.48# 组播地址
}
vrrp_instance VI_1 {
state MASTER# 主模式
interface eth0# 监听的网卡
virtual_router_id99# 虚拟路由标识
priority 100# 优先级
advert_int 1# 通行间隔时间 1s
authentication {# 预共享密钥认证
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {# 虚拟的ip地址
172.16.0.10/16 dev eth0
}
}
virtual_server 172.18.48.48 80 { # vip的地址、端口
delay_loop 3 # 健康检查时间间隔
lb_algo wrr# 基于权重的轮询模式
lb_kind DR # lvs-dr模式
protocol TCP# 基于TCP协议
sorry_server 127.0.0.1 80# 全都出错时,返回本地的页面
real_server 172.18.48.10080 {# RS服务器1
weight 1 # 权重
HTTP_GET {# 基于HTTP_GET的检测
url {
path / # 要监控的URL
status_code 200 # 检测为健康状态的响应码
}
connect_timeout 1 # 连接请求的超时时长
nb_get_retry 3# 重试次数
delay_before_retry 1# 重试之前的延迟时长
}
}
real_server 172.18.48.20080 { # RS服务器2
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
}
} 在RS服务器还要配置VIP地址,因为是LVS_DR模式基于IP地址的访问,所以要配置相应的VIP
vim lvs_dr_rs.sh
#!/bin/bash
vip=172.18.48.48
mask='255.255.255.255'
dev=lo:1
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask broadcast $vip up
echo "The RS Server is Ready!"
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac 注意事项:
1.查看系统所的服务是否开启
2.tcpdump -i eth0 -nn host 224.100.100.48# 查看网卡接口是否接收组播的数据信息
3.配置完成之后重新启动服务
service keepalived restart
service httpd restart
4.重启之后,查看VIP的地址是否配置成功
ipa
5. 客户机 curl172.18.48.48# 这个时间会基于权重的轮询访问
页:
[1]