云原生智能网关 健康检查

云原生网关提供健康检查机制,通过配置健康检查相关策略,网关会对服务节点进行“探活”、“探死”,当服务节点发生故障时,可将请求代理到健康的节点上,以增强网关服务的连续性。

相关产品
云原生智能网关 产品页,含版本规格、价格与购买入口。

一、操作背景

注意:云原生网关健康检查机制仅适用于 IP 列表类型的服务,K8S 服务建议使用容器健康检查机制。

二、健康检查的方式

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

三、主动检查(active checks)

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

四、被动检查(passive checks)

被动检查也被称为断路器模式,该模式下网关会基于网关代理的(HTTP/HTTPS/TCP)进行检查,不会主动发起对节点的探测。当节点无响应时,被动健康检查将检测该目标并将其标记为不健康。

注意:说明:

注意:由于该模式下不健康的节点无法收到请求,即使节点恢复健康,网关也无法探测到该节点恢复进而重新将该节点标记为健康,只能通过管理端 API 手动触发并通知健康检查器再次启用该节点。因此通常需要结合主动健康检查策略。

五、如何配置健康检查

1. 登录 TSF 控制台,在左侧导航栏单击云原生网关 > 实例管理,进入实例列表页面。

2. 单击实例 ID/名称进入实例详情页。

3. 单击服务路由,选择服务页签,可在服务列表页或服务详情页配置健康检查。

六、配置主动健康检查

在网关服务列表页面,单击健康检查列处的编辑按钮,进行健康检查配置。

·被动健康检查:通过判断上游节点的响应状态确定节点健康状态。

·主动健康检查:网关按照预设的探测周期,主动探测服务节点的存活性。

·请求路径:网关向目标节点发出主动探测请求时使用的路径,默认为“/”。

·健康检查间隔:两次对健康节点主动进行健康检查的间隔时间,支持 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 状态码配置正确。

七、监控健康检查状态

配置完健康检查后,在左侧导航栏选择数据观测,页面顶部选择业务监控 > 业务指标:

·通过服务筛选,可查看该服务下的节点健康状况。

·通过实例视图筛选,可查看该实例下所有服务的节点健康状况聚合情况。

·支持为健康检查健康指标配置告警。

八、查看节点状态

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

九、服务不支持健康检查的原因

·域名/IP 类型不支持

原因:节点地址是动态 DNS 解析的域名,网关拿到的不是固定的 IP 列表,而是域名。每次请求可能解析到不同的后端 IP,健康检查的"探活/探死"目标无法稳定指向具体节点。

·注册中心(TSF PolarisMesh)类型不支持

原因:节点上下线、存活性由注册中心自身通过心跳机制维护,PolarisMesh 会主动剔除不健康实例,网关拿到的是注册中心过滤后的"已健康"节点列表,再做一层健康检查是冗余且会与注册中心判定结果冲突。

赞 (0)
上一篇 4天前
下一篇 4天前