
coco/upp-aggregate-healthcheck该服务用于聚合Kubernetes集群中服务和Pod的健康检查结果,提供服务与Pod健康状态查询、不健康服务确认及粘性分类管理等功能。
服务健康的判定条件为其所有Pod均健康,通过查询每个Pod的__health端点评估Pod状态。服务按分类分组,支持指定分类查询;未指定分类时返回所有服务健康状态。
通过查询Pod内应用的__health端点评估Pod健康状态。若Pod中至少一项检查失败,根据失败检查的严重级别,Pod状态判定为警告或严重。
服务不健康时可确认警告状态。确认所有不健康服务后,聚合健康检查的整体状态将变为健康(并提示有“n”个服务已确认)。
分类可设为粘性,即若分类中任一服务不健康,该分类将被禁用(状态变为不健康),直至手动重新启用,提供启用分类的端点。
本地运行前需获取项目依赖,执行以下命令:
shellgo build
本地环境功能有限(需访问集群内Pod),仅支持以下功能:
Docker镜像构建使用仓库:coco/upp-aggregate-healthcheck
服务需满足以下条件才能被聚合健康检查纳入监控:
__hasHealthcheck: "true"readinessProbe(就绪探针),检查应用的__gtg端点分类通过Kubernetes ConfigMap定义,模板如下:
yamlkind: ConfigMap apiVersion: v1 metadata: name: category.CATEGORY-NAME # 分类名称 labels: healthcheck-categories-for: aggregate-healthcheck # 聚合健康检查服务识别标签 data: category.name: CATEGORY-NAME # 分类名称 category.services: serviceName1, serviceName2, serviceName3 # 分类包含的服务列表 category.refreshrate: "60" # 缓存刷新间隔(秒,默认60) category.issticky: "false" # 是否为粘性分类(默认false) category.enabled: "true" # 是否启用分类(默认true)
支持两种响应格式:
"Accept: application/json"pathPrefix:路径前缀,默认为空。以下示例假设pathPrefix为__health__gtg(健康就绪端点)categories:指定分类(多个分类用逗号分隔)cache:是否使用缓存(默认true,设为false时实时检查)localhost:8080/__gtg?cache=false&categories=read,publish<pathPrefix>/__health 或 <pathPrefix>(服务健康检查端点)categories:指定分类(多个分类用逗号分隔)cache:是否使用缓存(默认true)localhost:8080/__health?cache=false&categories=read,publish<pathPrefix>/__pods-health(Pod健康检查端点)service-name:服务名称(必填)localhost:8080/__health/__pods-health?service-name=api-policy-component<pathPrefix>/__pod-individual-health(单个Pod健康检查端点)pod-name:Pod名称(必填)localhost:8080/__health/__pod-individual-health?pod-name=api-policy-component2912-***<pathPrefix>/add-ack(确认服务端点,POST方法)service-name:服务名称(必填)ack-msg:确认消息localhost:8080/__health/add-ack?service-name=api-policy-component(请求体:ack-msg=这是确认消息)<pathPrefix>/rem-ack(取消确认端点)service-name:服务名称(必填)localhost:8080/__health/rem-ack?service-name=api-policy-component<pathPrefix>/enable-category(启用分类端点)category-name:分类名称(必填)localhost:8080/__health/enable-category?category-name=read<pathPrefix>/disable-category(禁用分类端点)category-name:分类名称(必填)localhost:8080/__health/disable-category?category-name=read
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务