【问题标题】:Unable to reach cloud run services externally after successful deployment部署成功后外部无法访问云运行服务
【发布时间】:2020-08-12 00:58:45
【问题描述】:

这是我第一次在我的 GCP 项目中使用完全托管的 Cloud Run。我已使用 Cloud Build 成功将我的服务部署到 Cloud Run。我设置了一个 cloudbuild.yaml 文件,该文件从 repo 构建我的容器,推送到 Container Registry,然后部署到云运行。
构建成功执行,我可以看到我的服务在云运行仪表板中运行。但是,当我调用提供的 URL 时,它不会返回任何响应。

  • 浏览器提示“找不到服务器 IP 地址。”
  • Postman 返回“错误:getaddrinfo ENOTFOUND”状态码 443。
  • ping 提供的 URL 会返回“未知主机”
  • 容器在本地运行并按预期工作

为了确保问题不是来自我的代码或容器,我部署了这个演示服务laravel6-on-google-cloud-run,但得到了相同的结果。

我注意到,当我从 Cloud Shell 卷曲服务端点时(从谷歌的内部网络中发出请求)。它按预期工作。所以也许这是一个防火墙的事情。我的 VPC 防火墙设置是否也会影响 Cloud Run 服务?
我将服务配置为允许未经身份验证的访问。连接设置为外部。

更新: 我注意到这些服务正在其他设备上运行,而不是我的笔记本电脑。我还不确定为什么,但可以肯定地说这是本地问题,而不是 Cloud Run 问题。

【问题讨论】:

  • 您是否尝试过使用其他设备?喜欢你的手机吗? Cloud Run 日志中是否有特殊的错误日志?
  • @guillaumeblaquiere 你是对的!它在我的手机上工作。你知道为什么它可以在其他设备上运行,而不是我的笔记本电脑吗?
  • 我不知道您的笔记本电脑有什么问题。您是否有拦截/更改 TCP 流量的软件代理或防火墙?
  • @guillaumeblaquiere 我不相信我有任何防火墙或代理设置,但我正在调查。至少我可以肯定地说,这绝对不是 Cloud Run 问题,感谢您为我指明了正确的方向。
  • 您很可能遇到了 DNS 服务器问题。检查笔记本电脑的网络配置并确定配置了哪些 DNS 服务器。我通常将这些设置从我的 ISP 的 DNS 服务器更改为 Google 的 8.8.8.8 和 8.8.4.4 developers.google.com/speed/public-dns/docs/using

标签: google-cloud-platform google-cloud-run


【解决方案1】:

事实证明,云运行实例 url 位于 .app 域中。

我之前安装了一个已注册在本地使用 .app 域的应用程序。因此,对具有该域的 url 的调用改为在本地解析。

要确认您遇到此问题,请在您的云运行 url 上执行 nslookup。

$ nslookup <cloudrun-service-url>.com

如果问题得到解决,那么您很可能会遇到此问题。从“/etc/resolver/”中删除这个条目应该有助于解决这个问题

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 2022-06-15
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2018-12-29
    • 1970-01-01
    • 2020-04-20
    相关资源
    最近更新 更多