Kubernetes(在GKE上)通过NAT为特定的kube服务进行外部连接?

时间:2018-04-08 20:27:01

标签: kubernetes google-cloud-platform google-kubernetes-engine

我目前在GKE上有两个群集 - 一个在{{1}},另一个在{{1}}。部署到这些群集中的节点的pod需要进行基于位置的请求(用于延迟测试)。

我还需要连接到RDS上的postgres实例,该实例使用基于IP的白名单进行外部连接。我的集群中的节点具有短暂的IP,因此我无法使用它们。

我已经做了很多研究并经历了大量的SO答案,文档和教程,并找到了解决方案,通过NAT路由流量几乎是目前在GKE上执行此操作的最佳/唯一方式。

https://serverfault.com/questions/835425/kubernetes-external-connection-through-single-ip

与上述问题类似,我不想通过NAT路由所有流量。我的理由是因为我需要来自与当前节点关联的互联网网关的请求,因此它来自特定区域。

上面的问题有一些答案几乎可以让我在那里,但不包括任何特定于kube的配置。这是一个很棒的教程:

https://docs.tenable.com/pvs/deployment/Content/GoogleCloudInstructionsNatGateway.htm

但同样,不是基于kube。

我的想法是我需要在我的kube集群中为postgres定义一个服务,然后告诉它通过NAT路由到外部服务。不完全确定从哪里开始,并希望得到帮助。

1 个答案:

答案 0 :(得分:1)

解决方案:

  1. Tag您的实例位于具有不同标记的不同区域/区域

  2. 为每个区域/区域创建静态IP地址

  3. 使用上面的外部地址创建NAT出口节点(GCE实例或实例组)

  4. 通过每个NAT出口节点创建一个route。限制RDS入口IP / 32的目标IP范围的每条路由和步骤1中的网络标记(因此实例使用正确的网关)