0
点赞
收藏
分享

微信扫一扫

五月学习之keepalived TCP健康检测

这一节,我们从 场景需求、需求分析、关键点分析、操作实践、实践小结 五个方面来学习


1、场景需求

对于应用层服务的检测我们可以基于http的方式,但是我们keepalived的高可用场景可不仅仅是应用层服务,还有其他层服务,最常见的就是传输层的服务,那么接下来我们的实验需求就是,基于keepalived的TCP检测机制,来实现后端服务的状态检测效果。

2、需求分析

为了满足上面的场景需求,我们需要通过以下几个步骤来完成整个动作
1 配置TCP检测功能
2 效果检查

3、关键点分析

1 配置TCP检测功能
我们需要在real_server配置段中,采用TCP_CHECK功能
2 效果检查
将后端服务进行重启,测试curl访问VIP效果

4、操作实践

1 配置HTTP检测功能
两台keepalived修改配置内容完全一致
virtual_server 192.168.8.100 80 {
delay_loop 2
lb_algo rr
lb_kind DR
protocol TCP
sorry_server 127.0.0.1 80
real_server 192.168.8.16 80 {
TCP_CHECK{
connect_timeout 3
}
}
real_server 192.168.8.17 80 {
TCP_CHECK{
connect_timeout 3
}
}
}
注意:
只需要 在每个real_server中添加 TCP_CHECK 属性即可
这里的检测ip和port都使用real_server的,其他属性我们仅用一个连接超时即可。

两台keepalived重启服务
systemctl restart keepalived

2 效果检查
正常效果检查
查看当前的web效果
~]# for i in {1..10}; do curl 192.168.8.100;done
nginx-RS2
nginx-RS1
...
nginx-RS2
nginx-RS1
查看当前的ipvsadm规则
]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.8.100:80 rr
  -> 192.168.8.16:80              Route   1      0          1         
  -> 192.168.8.17:80              Route   1      0          2 

模拟后端服务故障
停止后端RS1的nginx服务
[root@lvs-rs1 ~]# systemctl stop nginx

查看ipvsadm规则
[root@kpmaster ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.8.100:80 rr
  -> 192.168.8.17:80              Route   1      0          0
结果显示:
	后端RS1主机自动被移出规则范围
查看当前的web效果
~]# for i in {1..10}; do curl 192.168.8.100;done
nginx-RS2
nginx-RS2
...
nginx-RS2

模拟后端服务恢复
恢复后端RS1的nginx服务
[root@lvs-rs1 ~]# systemctl start nginx

查看ipvsadm规则
[root@kpmaster ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.8.100:80 rr
  -> 192.168.8.16:80              Route   1      0          0         
  -> 192.168.8.17:80              Route   1      0          0
结果显示:
	后端RS1主机自动被添加到规则范围
查看当前的web效果
~]# for i in {1..10}; do curl 192.168.8.100;done
nginx-RS2
nginx-RS1
...
nginx-RS2
nginx-RS1
结果显示:
后端服务可以自由的监控到,然后又恢复正常了

5、实践小结

对于http场景下的服务检测功能,我们可以结合keepalived的TCP检测功能来完成,完成步骤如下:
    1 规划服务的检测内容
		2 keepalived使用TCP检测配置
		3 效果测试
注意:
		keepalived在使用TCP检测配置的时候,一定要注意:
		保证tcp检测的端口和ip地址必须准确

举报

相关推荐

0 条评论