clb健康检查

2020-11-28 14:41:31 浏览数 (1)

clb健康检查

负载均衡可以定期向后端服务器发送 Ping 命令、尝试连接或发送请求来探测后端服务器运行的状况,这些探测称为健康检查。负载均衡通过健康检查来判断后端服务的可用性,避免后端服务异常影响前端业务,从而提高业务整体可用性。

  • 当后端服务器实例被判定为异常时,负载均衡实例将自动将新的请求分发给其他正常的服务器,而不会把请求转发到异常的服务器;当异常实例恢复正常状态时,负载均衡将自动恢复该服务,重新分发请求给它
  • 开启健康检查后,无论后端服务器权重是多少(包括为0),负载均衡实例都会进行健康检查。
  • 弹性伸缩组会定期使用相似的方法确定每个组内实例的运行状况。

一、 四层转发健康检查配置

四层转发的健康检查机制:由负载均衡器向配置中指定的服务器端口发起访问请求,若端口访问正常,则视为后端服务器运行正常,否则视为运行异常。

1、 对于 TCP 的业务,有以下3种:

1) 使用 SYN 包进行探测,通过tcp连接建立来对rs进行健康检查。

2) 自定义探测。支持设置探测请求和返回,通过对比返回的请求内容和设置的内容判断rs是否健康。自定义探测需要业务逻辑实现支持。

3) http探测。自定义探测的一种,支持用户按http探测方式设置tcp探测。

2、对于 UDP 业务,有以下3种:

1)使用 Ping 探测rs主机,不支持指定端口。

2)ping sendto方式,每个rs发送两个包,一个udp探测端口,另一个探测rs主机。需要udp没有收到端口不可达,且rs主机探测成功才表示rs健康,否则rs不健康。

3)自定义探测,支持设置探测请求和返回,通过对比返回的请求内容和设置的内容判断rs是否健康。自定义探测需要业务逻辑实现支持。

四层健康检查配置说明如下:

二、 七层转发健康检查配置

七层转发的健康检查机制由负载均衡器向后端服务器发送 HTTP 请求来检测后端服务,负载均衡器会根据用户选择的 HTTP 返回值来判断服务是否正常。假定在某场景下,HTTP 返回值为 http_1xx、http_2xx、http_3xx、http_4xx 和 http_5xx 这几种,用户可以根据业务需要编辑 http_1xx 及http_2xx 为服务正常状态,并设置 http_3xx 至 http_5xx 的返回值代表异常状态。

七层健康检查配置说明如下:

三、 健康检查状态

根据健康检查探测情况,后端服务的健康检查状态有如下四种:

注意:

若您关闭健康检查,负载均衡将向所有后端服务器转发流量(包括异常的后端服务器),因此强烈建议您打开健康检查,允许负载均衡帮您自动检查并移除异常的后端服务器。

四、 健康检查异常排查

1、检查后端服务器的公网带宽

传统账户类型,负载均衡绑定的后端 CVM 需要配置公网带宽,否则会导致健康检查异常。因为该账户的带宽属性在 CVM 上,而非 CLB 上。

2、检查安全组配置

检查负载均衡实例是否开启安全组默认放通功能。如果未开启,则需在 CVM 的安全组上放通来源 IP。如果您的 CLB 服务支持任意 IP 的访问,则在安全组的入站规则中配置来源 IP 为0.0.0.0/0。

3、检查四层监听器

确认后端rs是否放通了clb的vip。

使用netstat命令,检查后端服务器的端口是否有进程在监听。若未发现进程,则重新启动服务。

4、检查七层协议

客户确认机器端口正常监听,可以使用telnet命令测试,七层可以使用curl命令测试

5、确认客户机器防火墙是否开启,如开启则需配置放通客户端访问的规则。

6、如客户为Linux主机,则需确认TCP 的快速回收(tcp_tw_recycle)和时间戳(tcp_timestamps)是否同时开启,建议关闭tcp_tw_recycle。

7、以上方法排查后还是异常,需同时在ld机器和cvm抓包分析。

说明:

  • 当健康检查探测到异常时,CLB 将不再向异常后端服务转发流量。
  • 当健康检查探测到所有后端服务都有异常时,请求将会被转发给所有后端服务。

0 人点赞