Kubernetes 从Google云端点排除路径 主要问题:
我们是否可以从云端点统计/监控中排除路径,同时仍然允许到实际后端的流量 说明: 我们有一个在Kubernetes上运行的后端,现在正在试用Google云端点。我们将EPS容器添加到后端容器前面的pod中。正如我们在其他地方所做的一样,我们也在Kubernetes和前面的Google(L7)LoadBalancer中使用健康检查。为了让健康检查到达我们的后端,必须在EPS容器使用的openapi yaml文件中定义健康检查,例如:Kubernetes 从Google云端点排除路径 主要问题:,kubernetes,google-cloud-platform,google-cloud-endpoints,kubernetes-health-check,Kubernetes,Google Cloud Platform,Google Cloud Endpoints,Kubernetes Health Check,我们是否可以从云端点统计/监控中排除路径,同时仍然允许到实际后端的流量 说明: 我们有一个在Kubernetes上运行的后端,现在正在试用Google云端点。我们将EPS容器添加到后端容器前面的pod中。正如我们在其他地方所做的一样,我们也在Kubernetes和前面的Google(L7)LoadBalancer中使用健康检查。为了让健康检查到达我们的后端,必须在EPS容器使用的openapi yaml文件中定义健康检查,例如: ... paths: "/_ah/health": get:
...
paths:
"/_ah/health":
get:
operationId: "OkStatus"
security: []
responses:
200:
description: "Ok message"
...
问题是,这些请求混淆了实际API的监视/跟踪/统计。云端点注册的延迟数是无用的:它们显示第50百分位为2ms,然后是第95百分位为20s,因为健康检查流量的比例很高。实际需要20秒以上的请求显示为请求的一小部分,因为运行状况检查每秒执行多次请求,每次需要2毫秒。由于这些运行状况检查是稳定的,占所有请求的90%,因此实际相关请求在页边空白处显示为“例外”
因此,我们希望从端点统计中排除此运行状况流量,但保持运行状况检查功能正常
我没有在文档中找到任何关于这方面的内容,也没有在其他地方的web上找到任何解决方案
可能的替代解决方案
我们可以向Kubernetes设置中添加额外的服务,直接到达后端,仅用于健康检查。这方面的问题有:
- 额外k8s服务、配置、防火墙规则。。。必需的
- 我们不检查实际设置的运行状况。如果EPS容器无法将流量定向到我们的后端,这将不会引起注意
- 我们使用SSL加密loadbalancer和后端之间的通信,但是我们的实际后端现在应该需要一个额外的SSL感知Web服务器。对于这种没有实际数据的健康检查,这是一个小问题,但仍然意味着规则的例外
- 我们还可以为EPS容器添加额外的健康检查。但是,由于这不应该出现在统计数据中,因此它应该类似于对未定义的路径执行请求,并检查该响应是否为该情况下的EPS响应:
这也不理想。它至少会检查容器是否正在运行,但它更像是一种“它没有停止”而不是“它正在工作”的方法,因此许多其他问题都会被忽略{"code": 5, "message": "Method does not exist.", "details": [{ "@type": "type.googleapis.com/google.rpc.DebugInfo", "stackEntries": [], "detail": "service_control" }] }
同时,您的替代解决方案将起到权宜之计的作用,但也有您发布的缺点。供参考:我们发现,ESP代理上实际上有一个运行状况检查端点选项,尽管在。。。您可以使用“-z”_ah/health”,然后查询该端点以进行生动性调查。如果在2017年对此进行了积极研究,那么2020年的今天情况如何?我也有同样的问题,这让我沮丧了好几个月。