从Google Cloud端点排除路径

时间:2017-05-02 08:47:12

标签: kubernetes google-cloud-platform google-cloud-endpoints kubernetes-health-check

主要问题:

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

说明:

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

...
paths:
"/_ah/health":
  get:
    operationId: "OkStatus"
    security: []
    responses:
      200:
        description: "Ok message"
...

这个问题是这些请求混淆了我们实际API的监控/跟踪/统计信息。云端点注册的延迟数量是无用的:它们显示出2个百分位数的50%,然后显示20个百分点的第95个百分位数,因为健康检查流量的比例很高。由于健康检查每秒多次请求多次,每次需要2ms,因此实际请求需要20多秒才会显示为请求的边际部分。由于这些健康检查是所有请求的90%的稳定流量,因此实际相关请求显示为“例外”#39;在边缘。

因此,我们希望从端点统计信息中排除此运行状况流量,但保持运行状况检查功能。

我在文档中找不到任何相关内容,也没有在其他地方找到任何解决方案。

可能的替代解决方案

我们可以为我们的Kubernetes设置添加额外的服务,直接到达我们的后端,仅用于健康检查。问题是:

  • 额外的k8s服务,配置,防火墙规则......必需
  • 我们不健康检查实际设置。如果EPS容器无法将流量引导到我们的后端,这将被忽视。
  • 我们使用SSL加密负载均衡器和后端之间的流量,但我们的实际后端现在需要一个额外的ssl感知网络服务器。对于没有实际数据的健康检查,这是一个小问题,但仍然意味着规则的例外。
  • 我们还可以为EPS容器添加额外的运行状况检查。但由于这不应该出现在统计数据中,它应该像是对未定义的路径进行请求,并检查响应是否是该情况的EPS响应:

    {"code": 5,
     "message": "Method does not exist.",
     "details": [{
         "@type": "type.googleapis.com/google.rpc.DebugInfo",
         "stackEntries": [],
         "detail": "service_control"
     }]
    }
    

    这也不理想。它确实检查容器是否至少运行,但更多的是它没有下降'而不是它的工作'方法,所以许多其他问题将被忽视。

1 个答案:

答案 0 :(得分:2)

Google Cloud Endpoints尚不支持从报告统计信息/监控中排除路径。这是一些在雷达上并被积极关注的东西。

与此同时,您的备用解决方案可以作为一个止损点,但有你发布的缺点。