健康检查

最近更新时间:2024-06-21 10:45:01

我的收藏

操作背景

云原生 API 网关提供健康检查机制,通过配置健康检查相关策略,网关会对服务节点进行“探活”、“探死”,当服务节点发生故障时,可将请求代理到健康的节点上,以增强网关服务的连续性。
注意:
云原生 API 网关健康检查机制仅适用于存在服务节点的服务类型,包括 K8S 服务、注册中心服务和 IP 列表。

健康检查的方式

云原生 API 网关提供两种健康检查的方式:主动检查和被动检查。

主动检查(active checks)

主动检查是指网关通过预设的探针类型,主动探测服务节点的存活性。当启用主动健康检查后,网关会按照预设的探测周期,向每个服务节点配置的路径发出 HTTP 或 HTTPS 请求, 网关将根据探测结果自动启用处于健康状态的节点,并禁用不健康的节点。

被动检查(passive checks)

被动检查也被称为断路器模式,该模式下网关会基于网关代理的(HTTP/HTTPS/TCP)进行检查,不会主动发起对节点的探测。当节点无响应时,被动健康检查将检测该目标并将其标记为不健康。
说明:
由于该模式下不健康的节点无法收到请求,即使节点恢复健康,网关也无法探测到该节点恢复进而重新将该节点标记为健康,只能通过管理端 API 手动触发并通知健康检查器再次启用该节点。因此通常需要结合主动健康检查策略。

如何配置健康检查

新创建的网关服务,服务节点默认开启被动健康检查进行服务节点探测,可在服务页配置主动健康检查。


配置主动健康检查

在网关服务列表页面,单击健康检查列处的编辑按钮,进行健康检查配置。
被动健康检查:通过判断上游节点的响应状态确定节点健康状态。
主动健康检查:网关按照预设的探测周期,主动探测服务节点的存活性。
请求路径:网关向目标节点发出主动探测请求时使用的路径,默认为“/”。
健康检查间隔:两次对健康节点主动进行健康检查的间隔时间,支持 2-300 秒。
异常检查间隔:两次对异常节点主动进行健康检查的间隔时间,支持 2-300 秒。
健康 HTTP 状态码:用于判断健康检查正常的 HTTP 状态码,返回上述 HTTP 状态码,节点将被标记为健康。健康 HTTP 状态码自动填充以下健康 HTTP 状态码:
2xx:200, 201,202,204
3xx:301, 302, 303, 304, 307,308
4xx:400, 401, 403, 404,410, 411,429, 499
异常 HTTP 状态码:用于判断健康检查异常的 HTTP 状态码,返回上述 HTTP 状态码,节点将被标记为异常。异常 HTTP 状态码自动填充以下异常 HTTP 状态码:
5xx:500,502,503,504
超时阈值:连续健康检查超时次数,超出该值认为该节点不健康,默认 10 次,可配置 1-10 次。
连续健康检查阈值:连续健康检查成功次数,超出该值认为该节点健康,默认 1 次,可配置 1-10 次。
连续异常阈值:连续健康检查失败次数,超出该值认为该节点异常,默认 10 次,可配置 1-10 次。
说明:
首次开启健康检查,网关将根据健康 HTTP 状态码范围进行节点健康状态标记,请确保 HTTP 状态码配置正确。


监控健康检查状态

配置完健康检查后,在左侧导航栏选择可观测性,页面顶部选择业务监控 > 业务指标:
通过服务筛选,可查看该服务下的节点健康状况。
通过实例视图筛选,可查看该实例下所有服务的节点健康状况聚合情况。
支持为健康检查健康指标配置告警。




查看节点状态

在服务详情页面的节点信息模块,可以查看到该服务下各节点的健康状况。您可以在节点列表的操作栏手动修改节点健康状态。