【发布时间】:2018-11-15 10:02:10
【问题描述】:
目前,我在 GCloud K8s Engine 上运行 Kubernetes 集群。
现在我在那里运行一个 OpenVPN 服务器来创建一个网络,多个客户端可以以客户端到客户端的方式一起交谈。 如果我只使用一个 VPN 服务器,它也已经可以工作了。客户端可以连接到 K8s Pod 并与其他客户端甚至服务器本身进行通信。
但是现在我想让它更可用一点,并希望至少有两台服务器,这意味着我创建另一个 VPN 网络,这相对简单,使用我在 server1 中使用的相同配置(我只需要调整子网)。
但棘手的部分是如何让两个 pod 都能正确路由网络?
即我有 VPN 网络 172.40.0.0/16 (Pod 1) 和 172.41.0.0/16 (Pod 2)。
K8s 或 GCloud 是否有任何方式宣布 VPN 网络,以便 Pod 正确地将请求从 172.40.0.0/16 路由到 172.41.0.0/16
(OpenVPN 会将两条路由都推送到客户端,因此 Pod 1 将成为网关或 Pod 2)
我不会费心编写代码,这样我就可以与 pod 正确通信,即,如果我创建一个使用 POD IP 作为网络网关的 GCloud Route,那会起作用吗?
【问题讨论】:
-
不确定我的问题是否正确,但总的来说,直接在 k8s 中与 pod 通信并不是最好的主意,因为 pod 可以随时移动/销毁。相反,由于 KubeDNS,您可以与服务通信,这样您就可以使用其名称与服务通信。在您的情况下,即使您将建立新网络,您仍然可以仅通过其名称与其服务进行通信
-
问题是我不能有一个可以“路由”整个网络的服务,如果一个 pod 被销毁/移动(它是一个 statefulset)我可以删除旧路由并宣布一个新的。基本上我正在寻找如何解决这个问题的想法,所以如果有一种方法可以让我的 vpn 正常工作,那么一切都会好起来的。我的意思是我也可以使用 vpn 将 vpn 实际连接到 vpn 本身(这会产生开销)
-
即一个很酷的方法是拥有一个 OpenVPN 使用的 VPC,而 gcloud 计算实际上会自动执行路由。
标签: kubernetes gcloud