【问题标题】:Private connection between GKE and Compute Engine on Google CloudGKE 与 Google Cloud 上的 Compute Engine 之间的专用连接
【发布时间】: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/8172.16.0.0/12192.168.0.0/16 作为源。

唯一有效的是最后一个选项,但使用 0.0.0.0/0 作为源 IP 范围。

我查看了一些相关问题,例如:

但我不打算将我的 GKE 集群设为私有,我尝试使用网络标签创建防火墙规则,但无济于事。

我错过了什么或者这不可能?

【问题讨论】:

  • 您如何访问您的虚拟机?有私有IP?你的虚拟机有公共IP吗?您是否在 GKE 上安装了应用程序或插件?比如 Istio
  • @guillaumeblaquiere 从我的 K8s 服务,我通过其内部 IP 访问计算实例。 Compute Engine 实例有一个临时外部 IP(想想看,禁用临时外部 IP 就足够了)......我没有使用任何服务网格应用程序,Istio 或其他。
  • 您无法从 GKE 集群访问您的虚拟机,对吧?节点的IP是多少?
  • 是的,我可以从 GKE 集群访问我的虚拟机。问题是确保外部 IP 对 Internet 关闭。
  • 你能分享你的防火墙规则吗?

标签: networking google-cloud-platform firewall


【解决方案1】:

不知道我是怎么错过的,我可以肯定几个月前我尝试过类似的东西,但肯定是其他配置错误。

在GKE集群详情页面,有一个pod地址范围。将防火墙源范围设置为 GKE pod 地址范围给了我想要的结果。

【讨论】:

  • 有一个选项可以在防火墙规则中指定源服务帐户(在这种情况下是附加到节点的 SA),而不是 Pod IP 范围,仅供参考。
猜你喜欢
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 2018-04-28
  • 1970-01-01
相关资源
最近更新 更多