【问题标题】:Firewall rule to allow GKE -> GCR traffic in separate projects允许 GKE -> GCR 流量在单独项目中的防火墙规则
【发布时间】:2017-12-15 18:37:23
【问题描述】:

我在 GCP 中运行 Kubernetes,并且我在不同的项目中拥有 GKE 集群和容器注册表。我将 GKE 服务帐户添加到我的 GCR 项目中,一切正常。

现在,我想在计算级别限制来自我的 GKE 项目的任何传出流量。我添加了一条出口防火墙规则,以丢弃任何流出我的 VPC 网络的流量。因此,GKE 无法再从注册表中提取图像。我添加了另一个防火墙规则以允许 GKE 服务帐户的出口流量,但为了让它工作,我必须添加“0.0.0.0/0 所有端口”作为目标过滤器。有一个更好的方法吗? GCR 是否有 IP 地址范围/端口?

谢谢!

【问题讨论】:

    标签: google-compute-engine google-container-registry google-kubernetes-engine


    【解决方案1】:

    GCR 没有专用的 IP 地址范围。 我不知道有什么方法可以限制 GCR 的流量。

    对不起。

    【讨论】:

      【解决方案2】:

      其实是有办法的。

      创建一个 VPC 网络并启用Private Google Access。正如您在文档中看到的那样:

      无障碍服务

      您可以使用私人 Google 访问权限访问的 Google 服务包括:

      容器注册服务,谷歌云平台上的私有 Docker 镜像存储库

      然后不允许防火墙中的任何连接,默认会被阻止。这样,您将获得一个无法访问但能够在 GCR 中拉取图像的 GKE 集群。

      【讨论】:

        【解决方案3】:

        有点旧,但您可以使用 GKE 私有集群:https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters

        【讨论】:

          【解决方案4】:

          我发现出于某种原因 gcr.io 解析为 aws fqdn,因此私人 google 访问不起作用。在我的情况下,集群是私有的,所以我必须添加一个云 nat 并允许 443 出去。创建防火墙规则后,我能够拉取。

          【讨论】:

            猜你喜欢
            • 2019-06-26
            • 2020-06-29
            • 1970-01-01
            • 1970-01-01
            • 2019-09-11
            • 2022-01-05
            • 1970-01-01
            • 2021-02-24
            • 2021-12-19
            相关资源
            最近更新 更多