rancher-健康检测

当在Cattle环境中使用Rancher时,Rancher通过部署名为healthcheck的基础设施服务来实现一套健康检查系统。这个系统的工作原理是在每台主机上部署一个healthcheck容器,以实现分布式的健康检查。这些容器内部利用HAProxy来检查应用的健康状态。每个容器最多会被三个运行在不同主机上的healthcheck容器监控,只要有一个HAProxy实例认为其状态正常,该容器就会被视为正常。如果所有HAProxy实例都认为其状态不正常,该容器将被视为状态异常。

在只有一台主机的情况下,健康检查将在同一台主机上执行。Rancher利用不同网络位置的主机进行健康检查,这比基于客户端的健康检查更高效。通过利用HAProxy进行健康检查,Rancher使用户能够在服务和负载均衡上使用相同的健康检查策略。

需要注意的是,健康检查只能在使用托管网络的服务上生效。如果选择其他网络类型,该服务将不会被监控。

配置健康检查

可以通过以下选项配置健康检查:

  • 检查类型:TCP连接(仅验证端口是否打开)或HTTP响应2xx/3xx(进行HTTP请求并确保收到正确的回复)。
  • HTTP请求:如果是HTTP响应2xx/3xx检查类型,必须指定一个可接受查询的URL。可以选择方法(GET、POST等)和HTTP版本(HTTP/1.0、HTTP/1.1)。
  • 端口:需要进行检查的端口。
  • 初始化超时:在退出初始化之前等待的毫秒数。
  • 重新初始化超时:在退出重新初始化之前等待的毫秒数。
  • 检查间隔:每次检查之间的时间间隔(毫秒)。
  • 检查超时:在检查未得到回复并超时之前等待的毫秒数。
  • 健康阈值:在一个不健康容器被标记为健康之前需要收到的健康检查回复的次数。
  • 不健康阈值:在健康容器被标记为不健康之前需要收到的健康检查回复的次数。
  • 不健康门槛:当容器被认为不健康时的操作选项,包括不进行操作、重新创建或仅当至少X个容器健康时重新创建。

在UI中添加Health Checks

对于服务或负载均衡,可以通过导航到Health Check选项卡来添加Health check服务。您可以选择检查服务的TCP连接或HTTP响应,并更改健康检查配置的默认值。

通过Rancher Compose添加Health Checks

使用Rancher Compose,可以在rancher-compose.yml文件中添加health checks。

在我们的示例中,如果容器被发现不健康,我们展示了三种不同策略的健康检查配置。

这些配置和设置可以帮助您确保在Rancher环境中的服务和负载均衡的健康状态得到有效监控和管理。

理。

原理初衷

及时检测到不健康的pod,再将不健康的pod删除以及回收容器

对于不同的服务来说,使用同样的配置会导致服务检测结果不同,因为不同的服务启动时间不一致。配置阈值、间隔时间、启动后检测时间都是跟服务密切相关的。

如果把检测时间拉长,虽然可以满足大部分服务的检测,但是就违背了健康检测的初衷(第一时间获取失败的容器),(比如服务1启动需要30秒,服务2启动需要10分钟,并且配置检测时间拉长至15分钟,那么服务1挂了后,大概需要再等待15分钟后才能释放这个容器,极大地浪费了资源)

解决方式,配置可视化的健康检测配置,与Rancher一致,在页面上根据不同的pod内应用程序所需的启动时间动态地配置健康检测

posted on 2024-03-22 18:08  Bunnyfufuu666  阅读(48)  评论(0编辑  收藏  举报