gpt4 book ai didi

kubernetes - 将外部节点加入现有 Kubernetes 集群

转载 作者:行者123 更新时间:2023-12-02 11:30:51 26 4
gpt4 key购买 nike

我有一个自定义 Kubernetes 集群(使用 kubeadm 部署)在来自 IAAS 提供商的虚拟机上运行。 Kubernetes 节点没有面向 Internet 的 IP 地址(主节点除外,我也将其用于 Ingress)。

我现在正在尝试将一台机器加入到这个不是由我的主要 IAAS 提供商托管的集群中。我想这样做是因为我的应用程序需要专门的计算资源,而 IAAS 不提供这些资源。

做这个的最好方式是什么?

这是我已经尝试过的:

  • 在面向 Internet 的 IP 地址上运行集群

  • 当我告诉 kube-apiserver 时,我加入节点没有问题在主节点上监听 0.0.0.0并为每个节点使用公共(public) IP 地址。但是,从安全角度来看,这种方法并不理想,并且还会导致更高的成本,因为必须为通常不需要它们的节点租用公共(public) IP 地址。
  • 使用 sshuttle 创建到主节点的隧道

  • 通过使用 sshuttle 创建从外部机器到 Kubernetes 主节点的隧道,我取得了一定的成功,该隧道在我的外部机器上配置为路由 10.0.0.0/8通过隧道。这在原则上是可行的,但它似乎太 hacky 并且也有点不稳定(有时外部机器无法获得到其他节点的路由,我还没有进一步调查这个问题)。

    以下是一些可行的想法,但我还没有尝试过,因为我不赞成这些方法:
  • 使用合适的 VPN

  • 我可以尝试使用适当的 VPN 隧道来连接机器。我不赞成这种解决方案,因为它会给集群增加(诚然非常小的)开销。
  • 使用集群联合

  • 看起来像 kubefed是专门为此目的而制作的。但是,我认为这在我的情况下是多余的:我只是试图将单个外部机器加入集群。使用 Kubefed 会增加大量开销(我的主集群上的联合控制平面 + 外部机器上的单主机 Kubernetes 部署)。

    最佳答案

    我想不出比这里的 VPN 更好的解决方案。特别是因为你只有一个孤立的节点,所以在这个节点和你的主节点之间进行握手应该相对容易。

    将流量从“内部”节点路由到这个孤立节点也很简单。因为所有节点都已经使用master作为他们的默认网关,修改master上的路由表就足以将流量从内部节点通过隧道转发到孤立节点。

    不过,您必须小心配置容器网络。根据您用于部署它的解决方案,您可能必须为 VPN 另一端的 Docker 网桥分配不同的子网。

    关于kubernetes - 将外部节点加入现有 Kubernetes 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44741262/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com