Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 从Google云端点排除路径 主要问题:_Kubernetes_Google Cloud Platform_Google Cloud Endpoints_Kubernetes Health Check - Fatal编程技术网

Kubernetes 从Google云端点排除路径 主要问题:

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:

我们是否可以从云端点统计/监控中排除路径,同时仍然允许到实际后端的流量

说明: 我们有一个在Kubernetes上运行的后端,现在正在试用Google云端点。我们将EPS容器添加到后端容器前面的pod中。正如我们在其他地方所做的一样,我们也在Kubernetes和前面的Google(L7)LoadBalancer中使用健康检查。为了让健康检查到达我们的后端,必须在EPS容器使用的openapi yaml文件中定义健康检查,例如:

...
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年的今天情况如何?我也有同样的问题,这让我沮丧了好几个月。