熟能生巧嘛。
对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 [[email protected] ~]# 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 liudu } 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 [[email protected] ~]# 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主机的启动脚本中: [[email protected] ~]# /etc/init.d/lvs-realsvr [[email protected] ~]# service lvs-realsvr start [[email protected] ~]# chkconfig lvs-realsvr on 10.0.200.102同上。 启动keepalived服务: [[email protected] ~]# service keepalived start 确认无误后,这个可别忘了: [[email protected] ~]# chkconfig keepalived on 10.0.200.105同理 四、调整2个Director的防火墙策略 1)因为iptables过滤了vrrp协议,它不属于任何端口,像icmp一样,需要单独放行。 -A INPUT -p vrrp -j ACCEPT 2)保存现在的策略 [[email protected] ~]# 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)应用防火墙策略 [[email protected] ~]# iptables-restore /root/rc.firewall.txt 5)确认无误,记得保存防火墙: [[email protected] ~]# service iptables save
时间: 2024-10-16 14:06:32