繁体   English   中英

Google App Engine弹性状态检查中的Docker网址错误

[英]Docker in Google App Engine Flexible health check has wrong URL

我的服务使用如下网址:

<google_url>/v1/lookup_stuff

<google_url>/v1/是服务中所有内容的基本URL,因此,当运行状况检查ping <google_url>它将获得404。我需要更新为ping <google_url>/v1/

(可能有用的信息,该服务在Docker中,当我手动转到正确的URL时可以访问该服务)

如何将gcloud的健康服务指向正确的服务网址?

明确起见,可以:

  • Google网址: service-something.appspot.com
  • 服务的所有URL在以下位置: service-something.appspot.com/v1

我需要将健康检查器指向:

  • service-something.appspot.com/v1/_ah/health

代替

  • service-something.appspot.com/_ah/health

无论如何,这确实是个隐秘的暴露问题:

  • 如果 <google_url>是您设计的标记,则将其分成两个部分: <google_base_url>/v1/<google_path_url>lookup_stuff则可以ping <google_base_url>/v1/并且在需要原始 <google_url> = <google_base_url> + <google_path_url>

  • 如果<google_url>是由某个框架等提供给您的,则您需要对其进行解释,以获取所需的初始部分。 也许您可以使用正则表达式模式,请检查此内容以便搜索

  • 第三种选择是在您的Web服务中放置一个重写规则,该规则将所有ping重定向到所需的url,再次检查此内容,以便搜索apache ,或者扩展您的问题以解释您使用的Web服务器,打算做什么等

最后,在kubernetes-health-check上查看这个不错的示例, 检查如何配置活动探针,其中有一个path参数应该有用

更新:

灵活的环境现在支持更新的运行状况检查 ,该更新的运行状况检查由可配置的活动性检查和/或准备情况检查组成 ,二者均具有可配置的path功能。

请注意,这些更新的运行状况检查不兼容,并且不能与旧式运行状况检查并存:

您必须分别为每个项目启用更新的运行状况检查。 默认情况下,启用旧式运行状况检查。 您不能在同一项目中同时使用两种类型的运行状况检查。

原始答案,仅适用于旧式健康检查:

该路径当前不可配置。 健康检查

您无需执行任何特殊操作即可实施运行状况检查。 如果您的应用程序不处理运行状况检查,则HTTP 404响应将被解释为成功答复。

您可以编写自己的自定义运行状况检查代码。 它应该使用HTTP状态代码200回复/_ah/health请求。 响应必须包含消息正文,但是,该正文的值将被忽略(可以为空)。

因此,您可以这样保留它-您的应用始终被认为是健康的。 或者,您可以通过/_ah/health告诉您的应用正确回答健康检查请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM