默认情况下,启用 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 版本上进行更改。