【问题标题】:How to host kubernetes cluster on VPN comprising of VM's from different cloud providers如何在由来自不同云提供商的 VM 组成的 VPN 上托管 kubernetes 集群
【发布时间】:2020-04-29 20:10:04
【问题描述】:

我在这里想要完成的是,创建一个 k8s 集群,但工作节点和主节点位于不同的云中。
例如,我在 AWS 中有一个 VM 实例,在 GCP 中有另一个。
我不能将它们用作主节点和工作节点,因为它们不在同一个网络范围内。

我的问题是,是否可以创建一个由这些机器组成的 VPN,然后在其上托管一个 k8s 集群,以便我可以使用不同云中的不同机器作为我的工作/主节点。
或者我对 k8s 的理解存在一些根本性的缺陷

我不想使用不属于免费层的 IP-Sec 或 DRG 来实现这一点。

【问题讨论】:

    标签: amazon-ec2 kubernetes google-cloud-platform openvpn


    【解决方案1】:

    许多 Kubernetes 容器网络接口 (CNI) 插件支持覆盖网络。覆盖网络在真实网络上为 k8s 节点创建隧道,以便在看起来像本地接口的物理子网之间进行通信。

    对于地理位置分散的集群,您需要解决许多问题。

    • 如何在集群中适当地安排应用程序。
    • 节点如何与主节点通信。
    • etcd 集群的结构。

    这些问题的常见解决方案是在每个地理位置运行多个集群并对其进行流量管理。

    【讨论】:

    • 目前我正在使用印花布,并且按照您的建议,它会在真实网络上创建一个隧道。我的问题是,这个真实的网络能否成为我在其上创建主节点和工作节点的 VPN 网络。另外关于调度和其他问题,如果我可以托管 k8s 集群,那么 k8s master 将在工作节点上部署应用程序/pod。例如,我们可以假设使用 kubeadm 我在一台具有 etcd 和所有控制器的机器上托管控制平面。
    • 是的,网络就是网络。只要隧道的源IP和目的IP是通过VPN路由的。您将在隧道内进行隧道传输,因此不要将 TCP 用于 VPN 并期待一堆 MTU 问题。但作为一个测试平台,一侧是节点,另一侧是主节点,应该没问题。节点不需要与 master 完美连接,它们可以在没有它们的情况下生存,并且仍然为它们的应用程序提供服务。
    • 如果这纯粹是一个成本练习,那么不妨试试 AKS。他们免费为您提供控制平面。
    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 2016-03-31
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2023-03-13
    相关资源
    最近更新 更多