0

I built a trading research system which runs backtest jobs. The system is managed by several Linux-based containers which are responsible for managing jobs, analyzing results, and storing all jobs and results in a PostgresDB. The backtest itself runs on an application called TradeStation, which is only supported on Windows (https://www.tradestation.com/trading-technology/system-requirements/).

I have sort of a frankenstein setup where the containers inside Docker on a built-up MacOS host (hackintosh with 4-cores and beefed up memory). The database is stored inside a Docker Volume. Then I have several VMs running Windows which runs Tradestation. Jobs are sent to the Windows VMs via a shared folder between MacOS and Windows.

I'm not married to MacOS, in fact I'd like to purchase ore or more powerful multi-processor servers and run virtualized (i.e. VMware ESXi).

I'm looking to transform the system to kubernetes for a more reliable and scalable system (among other benefits). Is it possible to setup this system in kubernetes?

I'm confused how the Windows systems run as a container alongside the Linux-based containers. I read somewhere that Windows containers must run on a Windows host? Does this mean that since I have Windows VMs, that I'm forced to run the entire system on a Windows server? I'd prefer to not be reliant on running on a Windows Host.

Any thoughts about how this system could be designed?

jersey bean
  • 125
  • 1
  • 8
  • "[..] run bare metal (i.e. VMware ESXi)." - So not bare metal but virtualized then? Are you aware that Kubernetes with Windows Containers is still relatively experimental (see https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/)? – Simon Sep 14 '20 at 18:12
  • Thanks. I should have said `virtualized` (I corrected text above). Thx for the link...i'll have to digest all of that. It sounds like lots of limitations so far in reading the article. – jersey bean Sep 14 '20 at 18:41
  • Can you eliminate the Windows and macOS bits? – Michael Hampton Sep 14 '20 at 19:06
  • @MichaelHampton i can eliminate using MacOS, but unfortunately I'm stuck with Windows since TradeStation only runes on Windows. I've researched alternatives, and have even attempted to build my own trading backtester, but TradeStation is one of the best applications out there for this purpose. – jersey bean Sep 14 '20 at 19:59
  • 3
    You can run Windows containers on a windows host, as part of a mixed kubernetes cluster. However it's only (AFAIK) Windows Server and it doesn't support GUI apps which judging by the linked page, tradestation is? Now *theoretically* you might be able to use something like VMWare Tanzu to run full Windows VMs in a cluster, but I've never actually seen that done. – Rory McCune Sep 15 '20 at 15:05
  • @RoryMcCune , I think that comment can even be posted as an anwer. – Nick Sep 22 '20 at 09:58

1 Answers1

0

This is a community wiki answer based on the comments and posted for better visibility. Feel free to expand it.

Official documentation says that you can have a mix of Linux and Windows Nodes in Kubernetes cluster. However, there are a few peculiarities:

  • A Linux-based Kubernetes kubeadm cluster in which you have access to the control plane;
  • Your Kubernetes server must be at or later than version 1.17
  • You need to have a Windows Server 2019 license (or higher) in order to configure the Windows node that hosts Windows containers.

More info can be found in the official Intro to Windows support in Kubernetes.

Theoretically, you might be able to use something like VMWare Tanzu to run full Windows VMs in a cluster.

However, you can check this article that gives some insight on how to run a GUI app in linux docker container on windows host.

Nick
  • 151
  • 7