GKE 中用于出站连接的稳定公共 IP 或 IP 范围

GKE 中用于出站连接的稳定公共 IP 或 IP 范围

我使用 Google Kubernetes Engine 来运行按需 Pod。每个 Pod 都使用 nodeport 服务公开暴露给互联网。

我正在寻找 GKE 中的一种方法来获取出站连接的单个 IP 或 IP 范围,然后将它们提供给第三方 API 以将其列入白名单。

当节点自动扩展或我升级节点时,GKE 节点 IP 不可管理。我需要一种方法来保持一致的出站 IP。

我尝试使用一个简单的 NAT 网关连接到 Kubernetes 节点(使用来自这里),虽然这会将出站连接路由到 NAT 网关,但它会中断到 pod(Nodeport 服务)的入站流量,因为它们会在 NAT 网关处被丢弃。

  • 谷歌云区域是否有一个默认 IP 范围,我可以将其提供给第三方以列入白名单(或)

  • 如果 GKE 提供了一种从预先保留的静态 IP 列表中选择节点外部 IP 的方法(或)

  • 有没有其他方法可以实现拥有单个静态 IP 或代表来自 Pod 的出站流量的 IP 范围

我发现了类似的问题,但它们没有解决我的问题,因为 pod 应该是外部可连接的,但在使用 NAT 时就会中断。

答案1

Google Cloud 现提供托管 NAT 网关服务 -云 NAT

该网关可与 GKE 集群一起使用,为其内部的所有 pod 提供稳定的公共出口 IP,从而使它们可以被第三方服务提供商列入白名单。

此处提供了使用 Cloud NAT 与 GKE 的示例实现 -https://cloud.google.com/nat/docs/gke-example

答案2

您可以尝试这个解决方案:

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

正常情况下,Google Kubernetes Engine 节点会通过与其节点集群关联的互联网网关路由所有出站流量。互联网网关连接又由与节点集群关联的 Compute Engine 网络定义。集群中的每个节点都有一个临时的外部 IP 地址。在自动扩缩期间创建和销毁节点时,会自动分配新的节点 IP 地址。

默认网关行为在正常情况下运行良好。但是,您可能需要修改临时外部 IP 地址的分配方式,以便:

  • 为第三方服务提供一致的外部 IP 地址。
  • 监控并过滤 Google Kubernetes Engine 集群的出站流量。

相关内容