运行 Windows + Linux 容器的 Kubernetes

运行 Windows + Linux 容器的 Kubernetes

我构建了一个运行回测作业的交易研究系统。该系统由几个基于 Linux 的容器管理,这些容器负责管理作业、分析结果并将所有作业和结果存储在 PostgresDB 中。回测本身在一个名为 TradeStation 的应用程序上运行,该应用程序仅在 Windows 上受支持(https://www.tradestation.com/trading-technology/system-requirements/)。

我有一个类似弗兰肯斯坦的设置,Docker 中的容器位于一个内置的 MacOS 主机上(具有 4 核和增强内存的黑苹果)。数据库存储在 Docker 卷中。然后我有几个运行 Windows 的虚拟机,这些虚拟机运行 Tradestation。作业通过 MacOS 和 Windows 之间的共享文件夹发送到 Windows VM。

我并没有执着于 MacOS,事实上我想购买更多或更强大的多处理器服务器并运行虚拟化(即 VMware ESXi)。

我希望将系统转换为 kubernetes,以获得更可靠、更可扩展的系统(以及其他好处)。是否可以在 kubernetes 中设置此系统?

我很困惑 Windows 系统如何作为容器与基于 Linux 的容器一起运行。我读到过 Windows 容器必须在 Windows 主机上运行?这是否意味着,由于我有 Windows VM,所以我必须将整个系统运行在 Windows 服务器中?我宁愿不依赖于在 Windows 主机上运行。

对于如何设计这个系统,您有什么想法吗?

答案1

这是基于评论的社区 wiki 答案,发布后可提高可见性。欢迎随意扩展。

官方文档据说 Kubernetes 集群中可以混合使用 Linux 和 Windows 节点。但是,有一些特殊之处:

  • 基于 Linux 的 Kubernetes kubeadm 集群,您可以在其中访问控制平面;
  • 您的 Kubernetes 服务器必须为 1.17 或更高版本
  • 您需要拥有 Windows Server 2019 许可证(或更高版本)才能配置托管 Windows 容器的 Windows 节点。

更多信息可以在官方找到Kubernetes 中的 Windows 支持简介

理论上,您可能能够使用 VMWare Tanzu 之类的程序在集群中运行完整的 Windows VM。

不过,你可以检查一下本文这提供了一些关于如何在 Windows 主机上的 Linux Docker 容器中运行 GUI 应用程序的见解。

相关内容