再次测试配置keepalived,lvs和realserver
熟能生巧嘛。
对keepalived和VRRP的理解:
keepalived: 高可用,更便捷的配置管理lvs
vrrp: 理解成局域网中增加了一个虚拟路由器组,其中有一个主机上的vrrp实例是master角色,上面启用了vip,组内其他都是backup角色,利用这个协议,可以让vip在局域网中同组的vrrp实例上漂移
一、需求
要使用keepalived配置vip来转发到后端的realserver上
vip:10.0.200.100
dip:
10.0.200.104(master)
10.0.200.105(backup)
rip:
10.0.200.101(haproxy)
10.0.200.102(haproxy)
rip_port: 10010(tcp)、10020(http)、10030(tcp)
测试keepalived环境的配置
tcpdump -i em1 vrrp
service keepalived start
service keepalived restart
service keepalived stop
tail /var/log/messages -f
ip a s dev em1
二、配置master
[root@200-104 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_200_104
}
vrrp_instance VIP_NSQ_100 {
state MASTER
interface em1
virtual_router_id 100
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
10.0.200.100
}
}
virtual_server 10.0.200.100 10010 { #设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
delay_loop 6 #设置运行情况检查时间,单位是秒
lb_algo rr #设置负载调度算法,这里设置为rr,即轮询算法
lb_kind DR #设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选
persistence_timeout 50 #会话保持时间,单位是秒。
protocol TCP #指定转发协议类型,有TCP和UDP两种
real_server 10.0.200.102 10010 { #配置服务节点1,需要指定real server的真实IP地址和端口,IP与端口之间用空格隔开
weight 1 #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
#分配不同的负载,可以为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配系统资源
TCP_CHECK { #realserver的状态检测设置部分,单位是秒
connect_timeout 10 #表示10秒无响应超时
nb_get_retry 3 #表示重试次数
delay_before_retry 3 #表示重试间隔
connect_port 10010
}
}
real_server 10.0.200.101 10010 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 10010
}
}
}
virtual_server 10.0.200.100 10020 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 10.0.200.102 10020 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 10020
}
}
real_server 10.0.200.101 10020 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 10020
}
}
}
virtual_server 10.0.200.100 10030 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 10.0.200.102 10030 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 10030
}
}
real_server 10.0.200.101 10030 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 10030
}
}
}
二、配置backup
[root@200-104 ~]# diff keepalived.conf backup/keepalived.conf
4c4
< router_id LVS_200_104
---
> router_id LVS_200_105
8c8
< state MASTER
---
> state BACKUP
11c11
< priority 100
---
> priority 50
29c29
<
---
>
三、服务启动
在rip上也要启用vip:
之前介绍过这个脚本:lvs-realsvr.sh
拷贝到rip主机的启动脚本中:
[root@200-101 ~]# /etc/init.d/lvs-realsvr
[root@200-101 ~]# service lvs-realsvr start
[root@200-101 ~]# chkconfig lvs-realsvr on
10.0.200.102同上。
启动keepalived服务:
[root@200-104 ~]# service keepalived start
确认无误后,这个可别忘了:
[root@200-104 ~]# chkconfig keepalived on
10.0.200.105同理
四、调整2个Director的防火墙策略
1)因为iptables过滤了vrrp协议,它不属于任何端口,像icmp一样,需要单独放行。
-A INPUT -p vrrp -j ACCEPT
2)保存现在的策略
[root@200-104 ~]# iptables-save >/root/rc.firewall.txt
3)修改
例如,在上面的配置文件中,增加到/root/rc.firewall.txt中,icmp那条策略后
-A INPUT -p icmp -j ACCEPT
-A INPUT -p vrrp -j ACCEPT <- 这是增加的一条策略
-A INPUT -i lo -j ACCEPT
4)应用防火墙策略
[root@200-104 ~]# iptables-restore /root/rc.firewall.txt
5)确认无误,记得保存防火墙:
[root@200-104 ~]# service iptables save
转载于:https://blog.51cto.com/nosmoking/1633532