【问题标题】:Using a custom gateway with Google Cloud Run on GKE将自定义网关与 GKE 上的 Google Cloud Run 结合使用
【发布时间】:2019-10-02 00:57:01
【问题描述】:

我有一个 GKE 集群,我正在其上测试 Google Cloud Run,它还托管不由 Cloud Run 管理的服务。为了访问这些,我设置了一个简单的网关和虚拟服务,如here 所述。此网关已在启用了 Istio 插件但未启用 Cloud Run 的 GKE 集群中成功运行。

似乎在启用 Cloud Run 的集群中,我的自定义网关被忽略了,所有流量都通过名为 istio-autogenerated-k8s-ingress 的默认网关。我怀疑这可能是因为默认是为Hosts: * 定义的。

如何确保我的服务网关优先于它负责的主机?编辑自动生成的网关是否安全?修改它会破坏 Cloud Run 吗? Cloud Run 在正常运行时会覆盖或修改此文件吗?

【问题讨论】:

  • 我认为您的意思是“我正在 在 GKE 上测试 Google Cloud Run,它还托管...”?
  • 你为Gateway添加了VirtualService吗?
  • 是的,我有,@Crou。

标签: google-kubernetes-engine istio google-cloud-run


【解决方案1】:

istio-autogenerated-k8s-ingress 由 Istio 插件提供。 CloudRun 不使用它。所以删除它是安全的。它不会破坏 CloudRun。

GKE 上的 CloudRun 默认使用命名空间 knative-serving 下的网关 knative-ingress-gateway。我很好奇你的用例。您是否还想使用自己的网关为 CloudRun 相关服务提供流量?如果需要,您可以在 config-istio ConfigMap (https://github.com/knative/serving/blob/master/config/config-istio.yaml) 中添加一个条目 "gateway.{your-own-gateway}: "istio-ingressgateway.istio-system.svc.cluster.local"。

【讨论】:

  • 不,我正在尝试使用自己的网关为来自集群中服务的特定主机提供流量,但这些服务不受 GKE 上的 CloudRun 管理。
【解决方案2】:

编辑自动生成的网关是否安全?

是的,但是如果您将 Cloud Run 插件用于 GKE 集群,那么它会在一段时间后被重写为插件中的一个。

修改它会破坏 Cloud Run 吗?

如果您写错或犯了错误,Cloud Run 可能无法正常工作。

Cloud Run 在正常运行时会覆盖或修改此文件吗?

如上所述,如果您使用插件将 Cloud Run 部署到集群,那么配置可能会在一段时间后自动修改,因为一切都已预先配置。

您是否使用过本指南Setting up Cloud Run on GKE?如果是这样,请阅读serving/pkg/reconciler/route/README.md,因为它可能会有所帮助。

【讨论】:

  • 是的,我确实遵循了该指南,谢谢。这里的澄清很有帮助。有一件事我仍然不清楚:我知道 knative 添加了自己的入口网关以避免与 istio-ingressgateway 冲突。我想了解的是是否同时使用了两个网关,或者 knative 是否优先。从路线自述文件中:“未来我们可能应该为用户提供一种方式来选择他们使用的网关 - 以及 Knative 期望这样的网关看起来如何。”让我觉得只有 knative 会被使用。
猜你喜欢
  • 2020-02-10
  • 2021-05-28
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 2018-12-09
  • 2019-10-29
相关资源
最近更新 更多