【问题标题】:GCloud K8s Pod-to-Pod RoutingGCloud K8s Pod 到 Pod 路由
【发布时间】: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


【解决方案1】:

K8s 或 GCloud 是否有任何方式宣布 VPN 网络,以便 pod 正确地将请求从 172.40.0.0/16 路由到 172.41.0.0/16

Kubernetes 没有任何此类机制。但是,您可以将BGP peeringCalico 作为叠加层。

我猜的另一个选项是在两台服务器上创建手动路由,这些路由相互指向,这样流量就会双向流动。 PodCidr 的流量会比较棘手,因为它通常伪装成 iptables,并且在 Kubernetes 集群中,PodCidr 是集群范围的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 2019-10-22
    • 2018-07-30
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2022-01-18
    相关资源
    最近更新 更多