2

默认情况下,启用 Cloud Run 的集群会禁用来自任何 pod 的出站网络流量

按照文档使用 Cloud Run 创建集群后,可以检查来自集群中 pod 内部的所有请求,不仅来自 Knative 服务 pod,而且实际上来自任何 pod,都将返回 404。目前尚不清楚哪个配置设置了这个,但很明显,它是通过创建启用了 Cloud Run 的集群来实现的。

因此,例如,我们无法在此集群上安装 helm。事实上,我们无法安装任何需要来自 pod 的外部请求的东西。

重现步骤:

1 - 遵循 Cloud Run 设置官方文档

2 - 在集群中启动一个简单的 alpine pod: kubectl run -it --rm --restart=Never alpine --image=alpine sh

3 - 执行任何外部请求,例如:wget www.google.com

Cloud Run 还记录了此行为并说明了如何启用出站流量

虽然,我按照这些步骤操作,但仍然无法启用流量。也许我做错了什么,或者它真的没有按应有的方式工作。

更新

https://stackoverflow.com/a/55861559/3165889中所述,这发生在 Cloud Run 使用的当前 Istio 版本上,但应该在默认情况下为所有出站请求启用出口的 1.1 版本上进行更改。

4

2 回答 2

0

这记录在 Cloud Run on GKE 设置文档中: https ://cloud.google.com/run/docs/gke/setup#enabling_outbound_network_access

这很快就不需要了,因为它会在默认情况下通过迁移到 Istio 1.1 启用,其中出站流量策略默认允许任何出口流量。

于 2019-04-26T05:55:35.170 回答
-1

一种可能的解决方案是在默认命名空间上禁用 istio-sidecar: kubectl label namespace default istio-injection=disabled

更多细节:https ://gitlab.com/groups/gitlab-org/-/epics/1202#note_164285838

于 2019-04-25T16:20:53.110 回答