如何将多个旧桌面配置为 Kubernetes 集群?

如何将多个旧桌面配置为 Kubernetes 集群?

我收集了一些朋友不再需要的旧游戏电脑,我想把它们变成运行 Kubernetes 集群的地方​​。我希望实现较高的可用性,并希望高效地使用我拥有的硬件。这些电脑都是功能齐全的台式机、CPU、GPU、不错的 RAM、SSD、磁盘、个人电源。我看到了两个选项,想知道哪个最适合我的目标:

  • 将每台计算机作为独立计算机,在每台计算机上运行 Ubuntu 服务器,然后将每台计算机作为节点连接到集群中。有关此方法的问题:
    • 这会限制我的集群的节点数与我的计算机数一样多。
    • 一台计算机可以作为多个不同集群上的节点运行吗?例如,我可以将计算机 1 作为集群 1 的控制平面节点,将计算机 1 作为集群 2 的工作节点吗?
    • 据我了解,在裸机上运行这样的集群会挤压硬件的更多空间,这是准确的吗?
  • 尝试将 SSD 和磁盘组合在一起,并运行 Proxmox 或其他虚拟机管理程序作为主操作系统。然后运行虚拟机作为 Kubernetes 集群的节点。
    • 这可能吗?Proxmox 可以使用分布式(尤其是不同的 CPU/GPU/RAM)并在其中配置虚拟机吗?
    • Proxmox 能否高效地使用这些资源而无需太多开销?它是否能够与 GPU 交互并将它们分配到 Kubernetes 集群中?
    • 是否有可能将虚拟机配置在不同计算机的硬件上,例如计算机 1 上的 CPU 和计算机 2 上的 GPU 和 RAM?这是否会损害我的可用性,因为其中一台发生中断的计算机可能会关闭几乎所有虚拟机,而不仅仅是其上配置的虚拟机?

我刚刚开始我的家庭服务器和 K8s 之旅,因此任何建议都将不胜感激。

答案1

在 Kubernetes Slack 上找到了一个很好的答案,可能是一个更好的发布地点。对于任何寻找答案的人来说,它都是这样的:这两种方法都有各自的优点和缺点,因此最适合您的选择取决于您的特定目标和要求。让我们简要比较一下这两个选项:

在每台计算机(裸机节点)上运行 Ubuntu 服务器:
优点:

  • 设置更简单,复杂性更低。
  • 更高效,因为没有虚拟化开销。
  • 由于硬件可直接访问,因此依赖硬件的工作负载的性能更佳。

缺点:

  • 管理资源的灵活性有限。
  • 由于每台计算机被视为一个独立的单元,因此硬件资源的利用效率较低。
  • 潜在的资源利用不足。

运行 Proxmox 并虚拟化节点:
优点:

  • 更好的资源利用率,因为可以在节点之间分配和平衡资源。
  • 提高了管理资源和部署工作负载的灵活性。
  • 从长远来看,更易于扩展和管理,因为可以无缝添加额外的硬件。

缺点:

  • 更复杂的设置和管理。
  • 由于虚拟化而产生的一些性能开销。
  • 学习曲线可能会更陡峭,特别是对于虚拟化新手来说。

如果您优先考虑简单性和效率,那么裸机方法可能是更好的选择。但是,如果您想要更多的灵活性和可扩展性,使用 Proxmox 进行虚拟化可能是最佳选择。请记住,在家中运行 Kubernetes 集群可能是一种相当难的学习体验,因此请考虑您想学习什么以及在设置和管理集群时您愿意面对什么样的挑战。

相关内容