错误的IP从GCP kubernetes负载均衡器到应用引擎的服务

问题描述 投票:0回答:1

我在位于GCP上的kubernetes集群中有一个nginx pod有些麻烦应该可以访问位于app引擎上的服务。

我在应用程序引擎中设置防火墙规则以拒绝所有并且仅允许一些ips但是命中我的app引擎服务的ip不是我的Nginx的负载均衡器的IP而是集群的一个节点的IP 。

图像优于1000个单词,然后这是我们的架构图像:

enter image description here

问题是:点击app引擎防火墙的ip是IP A,而我以为我是IP B.每当我杀死/创建集群时,IP A都会发生变化。如果它是IP B,我可以轻松地在App引擎的防火墙规则中打开这个IP,因为我已经将她静态化了。任何人都知道如何使用IP B而不是IP A?

谢谢

kubernetes google-cloud-platform google-kubernetes-engine
1个回答
1
投票

分配给nginx“负载均衡器”的IP地址(可能)不是由Kubernetes集群拥有或管理的IP。 GKE中LoadBalancer类型的服务使用Google Cloud Load Balancers。这些是外部抽象,它终止了Google前端基础架构中的入站连接,并将流量传递到集群中的各个k8s节点,以便继续传送到您的k8s托管服务。

默认情况下,Kubernetes群集中的Pod将使用其主机节点的配置将出口流量路由出群集。在GKE中,此路由对应于VPC的网关,其中存在集群(以及扩展名为Compute Engine实例)。群集节点的公共IP将在池中添加和删除时更改。

解决方法使用具有静态外部IP的专用实例来处理离开VPC的出口流量(即来自群集的出口)。谷歌为此目的提供了一个教程:https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

存在k8s本地解决方案,但由于无法维护具有非短暂公共IP的任何节点,因此这些解决方案目前在GKE上下文中是不适合的。

© www.soinside.com 2019 - 2024. All rights reserved.