【发布时间】:2020-10-26 23:22:20
【问题描述】:
- 我有一个具有持久文件存储的计算引擎实例,我需要在我的 GKE 集群之外使用它。
- 我想在 Compute Engine 实例上打开一个特定的 TCP 端口,以便只有 GKE 集群中的节点可以访问它。
- Compute Engine 实例和 GKE 集群位于同一个 GCP 项目、网络和子网中。
- GKE 集群不是私有的,我有一个入口将我希望公开到互联网的唯一服务公开。
我尝试过创建三种不同类型的防火墙规则,但都不起作用:
- 通过 Compute Engine 实例和 K8s 节点上的共享服务帐户。
- 通过网络标签 - (是的,我正在使用虚拟机实例页面上明确指定的网络标签)。
- 按 IP 地址,我使用网络标签作为目标和私有 IANA IP 范围
10.0.0.0/8、172.16.0.0/12和192.168.0.0/16作为源。
唯一有效的是最后一个选项,但使用 0.0.0.0/0 作为源 IP 范围。
我查看了一些相关问题,例如:
- Google App Engine communicate with Compute Engine over internal network
- Can I launch Google Container Engine (GKE) in Private GCP network Subnet?
但我不打算将我的 GKE 集群设为私有,我尝试使用网络标签创建防火墙规则,但无济于事。
我错过了什么或者这不可能?
【问题讨论】:
-
您如何访问您的虚拟机?有私有IP?你的虚拟机有公共IP吗?您是否在 GKE 上安装了应用程序或插件?比如 Istio
-
@guillaumeblaquiere 从我的 K8s 服务,我通过其内部 IP 访问计算实例。 Compute Engine 实例有一个临时外部 IP(想想看,禁用临时外部 IP 就足够了)......我没有使用任何服务网格应用程序,Istio 或其他。
-
您无法从 GKE 集群访问您的虚拟机,对吧?节点的IP是多少?
-
是的,我可以从 GKE 集群访问我的虚拟机。问题是确保外部 IP 对 Internet 关闭。
-
你能分享你的防火墙规则吗?
标签: networking google-cloud-platform firewall